2014 dxdy logo

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

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


Правила форума


В этом разделе нельзя создавать новые темы.



Начать новую тему Ответить на тему
 
 Задача линейного программирования. Помогите решить
Сообщение03.02.2016, 12:19 


03/02/16
3
Здравствуйте.
Следующую задачу поставили в универе с комментарием "простая задача на линеное программирование".Все, что необходимо-правильно формализовать ее. Думаю второй день, но у меня в любом случае получается задача линейно-кусочного программирования, а это уже совсем другая история. Преподаватель отказывается комментировать и настаивает на том, что задача очень простая.

Вот ее постановка:
"Фирма собирает персональные компьютеры для частных клиентов. На следующие 4 квартала имеются заказы на 400,700,500 и 200 комп. соответственно. Фирма может производить больше комп. чем указано в заказах, но в таком случае приходится платить 100 долларов за хранение одного комп. в течении квартала. Увеличение производства в следующем квартале, по сравнению с предыдущим, приводит к дополнительному набору работников, что повышает себестоимость одного компьютера на 60 долларов. При уменьшении производства в следующем квартале, по сравнению с предыдущим, придется прибегнуть к сокращению персонала, что тоже увеличивает стоимость одного комп. на 50 долларов. Как организовать сборку компьютеров, чтобы удовлетворить все заказы?"

В моей формализации переменные обозначают количество компьютеров, которое необходимо произвести в 1, 2, 3 и 4 кварталах года соответственно. А коэффициенты в критериальной функции-разрывные кусочно-линейные функции, которые зависят от соотношения значений соседних переменных.

Получившаяся критериальная функция:
${J = u_2\cdot c_1(u_1,u_2)+u_3\cdot c_1(u_2,u_3)+u_4\cdot c_1(u_3,u_4)+100\cdot (c_2(u_1)+c_3(u_2)+c_4(u_3)+c_5(u_4))}
$
где
$c_1(a,b)
= \begin{cases}
60,&  a < b  \\
0, & a=b  \\
50, & a>b 
\end{cases}$

$c_2(a)
= \begin{cases}
400-a, & a>400\\
0, & a<400
\end{cases}$
$c_3(a)
= \begin{cases}
700-a, & a>700\\
0, & a<700
\end{cases}$
$c_4(a)
= \begin{cases}
500-a, & a>500\\
0, & a<500
\end{cases}$
$c_5(a)
= \begin{cases}
200-a, & a>200\\
0, & a<200
\end{cases}$
Прошу помочь с определением типа этой задачи

 Профиль  
                  
 
 Posted automatically
Сообщение03.02.2016, 12:26 


20/03/14
12041
 i  Тема перемещена из форума «Помогите решить / разобраться (М)» в форум «Карантин»
по следующим причинам:

- отсутствуют собственные содержательные попытки решения задач(и).

Тег CODE как-то не по существу. Лучше убрать.

Исправьте все Ваши ошибки и сообщите об этом в теме Сообщение в карантине исправлено.
Настоятельно рекомендуется ознакомиться с темами Что такое карантин и что нужно делать, чтобы там оказаться и Правила научного форума.

 Профиль  
                  
 
 Posted automatically
Сообщение03.02.2016, 16:04 


20/03/14
12041
 i  Тема перемещена из форума «Карантин» в форум «Помогите решить / разобраться (М)»

 Профиль  
                  
 
 Re: Задача линейного программирования. Помогите решить
Сообщение04.02.2016, 23:12 
Заслуженный участник


10/01/16
2318
cofree

1. В вашей целевой функции есть ошибка (в знаке: вторая группа слагаемых -отрицательна)
2. Вообще то эта задача - задача целочисленного программирования. Так что, решая ее методами ЛП, не надо удивляться, если получится, что в первом квартале надо произвести 417 с половиной компов.
3. Вообще то эта задача - задача выпуклого программирования... Мало Вам не покажется, ибо экстремум может случиться не на границе области (как в ЛП) а в нутре...
4. Но если уж очень хочется (а вашему преподу, видимо, хочется), то да, таки можно ее сделать по ЛП. Но придется попотеть. Именно,
разбейте неравенствами Вашу область изменения параметров на части (типа $u_1\leqslant u_2,......, u_4 \geqslant 200$, всего то и надо рассмотреть $2^7 = 128$ случаев, делов то), и тогда в каждой из областей все будет хорошо, и задача решится. А потом из всех найденных решений выберите минимальное. На самом деле это не так уж страшно - не вы же будете напрягаться, а комп - а он ведь железный...Токо придется и организацию перебора поручить железному дураку, так что, повторяю, програмку написать будет не так просто. И будьте внимательны : некоторые области могут оказаться пустыми - и это, как и выбор начальной точки (симплекс-метод, да?) тоже надо заложить в прогу.

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

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



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

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


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

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