2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Нестандартный симплекс
Сообщение21.08.2007, 18:45 


21/08/07
29
Симплекс метод позволяет находит max или min целевой функции и значения неизвестных для заданных ограничений.
Мою задачу можно записать в следующим виде.

F = 104*C1 + 85*C2 +49 C3 -> min;

50 <= 58.05*C1 + 83.16*C2 +34.56*C3 <= 59;
18*C1 + 20.9*C3 >= 12;
16*C1 + 0.023*С2 + 40.1*C3 <= 38;
C1 >= 0.06;
C1 + C2 + C3 = 1;

Это модель ограничений для фарша состаящая из 3-х компонентов. В качестве ограничений выступают значение по воде, белку и влаги. В одной книжке я прочитал, чтобы повысить правил-ть данной модели на 20% необходимо сделать так:
50 <= 58.05*C1 + 83.16*C2 +34.56*C3 + С1*С2*С3 <= 59;
18*C1 + 20.9*C3 + C1*C3 >= 12;
16*C1 + 0.023*С2 + 40.1*C3 + C1*C2*C3 <= 38;
Как пишут в книжке добавление слагаемоего в виде произведения неизвестных вызвано прежде всего структурно механическими изменений при смешивании компонентов фарша. Скажите, пожалуйста, правильны ли эти рассуждения.

P.S. С1, С2, С3 - массовые доли компонентов фарша.

 Профиль  
                  
 
 
Сообщение21.08.2007, 23:23 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
Delphist писал(а):
Как пишут в книжке добавление слагаемоего в виде произведения неизвестных вызвано прежде всего структурно механическими изменений при смешивании компонентов фарша. Скажите, пожалуйста, правильны ли эти рассуждения.

К сожалению, сказать что-либо трудно. Поскольку эти неравенства относятся к постановке задачи, а не к математическим методам ее решения. Т.е., к к химии, биологии, физике — чему угодно, кроме математики.

А вот что можно сказать точно — что задача в такой постановке не будет решаться симплекс методом. Поскольку симплекс метод (в традиционной формулировке) решает задачу линейного программирования, а введение произведений делает ее нелинейной. Если повезет, то задача окажется выпуклой…

 Профиль  
                  
 
 
Сообщение22.08.2007, 08:48 


21/08/07
29
незваный гость писал(а):
:evil:
А вот что можно сказать точно — что задача в такой постановке не будет решаться симплекс методом.

А каким методом она будет решаться?

 Профиль  
                  
 
 
Сообщение22.08.2007, 09:07 
Заслуженный участник


09/02/06
4397
Москва
У вас всего три переменных. Решайте простым перебором, минутная задача для компьютера. Можно конечно гораздо эффективнее, но это потребует гораздо большего времени на объяснение сути и составление алгоритма.

 Профиль  
                  
 
 
Сообщение22.08.2007, 17:56 


21/08/07
29
Руст писал(а):
У вас всего три переменных. Решайте простым перебором, минутная задача для компьютера. Можно конечно гораздо эффективнее, но это потребует гораздо большего времени на объяснение сути и составление алгоритма.

Три переменных я написал для простоты, а на самом деле их может быть до 10-ка, и условий до 20.

 Профиль  
                  
 
 
Сообщение22.08.2007, 19:53 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:

Ох, Delphist, и не проста у Вас жизнь. Я сначала думал, что можно как-то попытаться модифицировать симплекс-метод, но быстро понял, что мои идеи будут работать только для выпуклой фигуры. Между тем, выпуклость Вашей области мне весьма сомнительна.

Самое неприятное в этой истории — то, что может быть несколько локальных максимумов целевой функции. Так что, тоска :)

Я хотел было поиронизировать над предложением Руста, но потом понял, что в нем есть любопытное зерно истины. Почва моей иронии — решение непрерывной задачи (все параметры из $\mathbb R$) перебором. Но вот что интересно и важно: Вас, видимо, не интересует точное решение. Вам должно быть нужно устойчивое решение близкое к оптимальному. Потому что и дозировки Вы можете задать лишь приближено (ну скажу я Вам, что $C_1=\frac12 \sqrt{2}$, и как Вы его закладывать в рецепт будете? округлите, ведь правда), и задание выполняется приближено (хорошо, если точность 0.1%, но я в это плохо верю). Поэтому точное решение, которое при малом отклонении становится «плохим» для Вас хуже, чем саб-оптимальное, но устойчивое. А тогда на параметрах (теоретически) можно было бы задать сетку, и перебирать в ней (как советовал Руст). Не то, чтобы это было практично.

Еще одна идея, которая плохо работает — это генетический алгоритм. Все было бы хорошо, да вероятность вылета за пределы неравенств велика.

 Профиль  
                  
 
 
Сообщение22.08.2007, 22:09 
Заслуженный участник


09/02/06
4397
Москва
В нелинейном случае конечно нет универсального алгоритма и 10 переменных слишком многою Могут появиться много локальных экстремумов. Поэтому боюсь дать универсальный совет. Однако, по виду ограничений (полиномы не большой степени) в принципе можно создать алгоритм, работающий хорошо в вашем случае, но это требует существенных затрат времени и не может быть решён здесь прямо на форуме.

 Профиль  
                  
 
 
Сообщение23.08.2007, 02:08 
Заслуженный участник


15/05/05
3445
USA
незваный гость писал(а):
... симплекс метод (в традиционной формулировке) решает задачу линейного программирования, а введение произведений делает ее нелинейной.…
Существует т.н. метод симплексного поиска относящийся к методам безусловной оптимизации без использования производных. См., например, Химмельблау Д. Прикладное нелинейное программирование, 1975, глава 4. Симплексный поиск упоминается в разделе 4.2, хотя основное содержание этого раздела - метод Нелдера-Мида (метод деформируемого многогранника - модификация симплексного поиска). В литературе еще упоминался метод конфигураций - из того же семейства.

Но для данной задачи матрица Якоби легко считается. Так что лучше ориентироваться на методы с производными.

 Профиль  
                  
 
 
Сообщение04.09.2007, 14:05 


21/08/07
29
незваный гость писал(а):
:evil:
А вот что можно сказать точно — что задача в такой постановке не будет решаться симплекс методом. Поскольку симплекс метод (в традиционной формулировке) решает задачу линейного программирования, а введение произведений делает ее нелинейной. Если повезет, то задача окажется выпуклой…

А если добавиться такое условие
lg(13)C1 + lg(12)С2 + lg(18)C3 <= 4;
То такую модель тоде нельзя считать simplex-методом?

 Профиль  
                  
 
 
Сообщение05.09.2007, 04:59 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
Добавить к чему? К исходной система — она останется линейной (т.е., применять симплекс метод можно), к модифицированной — она останется нелинейной.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group