Главная страница
Случайная страница
КАТЕГОРИИ:
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Пример 5.1. Решить ЗЛП
.
Далее приведен рабочий лист Maple по решению задачи с соответствующими описаниями действий.
[> restart; with(simplex):
[> system_ogran_1: ={-x[1]+x[2]+3*x[3]< =2,
2*x[1]+3*x[2]-x[3]< =10};
object_function: =4*x[1]-x[2]+3*x[3]-10;
Optimal_Max: =maximize(object_function, system_ogran_1,
NONNEGATIVE);
Optimal_Min: =minimize(object_function, system_ogran_1,
NONNEGATIVE);
[> cterm(system_ogran_1);
/определяет свободные члены в системе ограничений/
[> display(system_ogran_1);
/выводит исходную систему ограничений ЗЛП в матричной форме записи/
[> feasible(system_ogran_1, NONNEGATIVE);
/Вводим в исходную систему ограничений балансовые переменные x[4], x[5], чтобы свести исходную задачу к каноническому виду/
[> equation1: =-x[1]+x[2]+3*x[3]+x[4]=2;
equation2: =2*x[1]+3*x[2]-x[3]+x[5]=10;
system_ogran_2: ={equation1, equation2};
/с помощью команды pivot выражаем базисные переменные/
[> pivot(system_ogran_2, x[4], [equation1]);
[> pivot(system_ogran_2, x[5], [equation2]);
[> Optimal_Max: =maximize(object_function, system_ogran_2,
NONNEGATIVE);
Optimal_Min: =minimize(object_function, system_ogran_2,
NONNEGATIVE);
| Пример 5.2. Решить ЗЛП ( ). Составить и решить для данной задачи двойственную ЗЛП. Проверить выполнимость условия основной теоремы двойственности.
.
Ниже приведен рабочий лист по решению задачи с соответствующими описаниями действий. Заметим, что в память загружается пакет Optimization для нахождения экстремума.
[> restart; with(simplex): with(Optimization):
/записываем прямую ЗЛП, находим оптимальное решение, максимизируя целевую функцию/
[> system_ogran: ={2*x[1]+5*x[2]> =17, -3*x[1]+2*x[2]< =6,
3*x[1]+3*x[2]< =32, x[1]> =2, x[2]> =2};
object_function: =x[1]+3*x[2];
[> Optimal_Max: =maximize(object_function, system_ogran,
NONNEGATIVE);
/с помощью команды Maximize из пакета Optimization находим максимум целевой функции прямой задачи/
[> Maximize(object_function, system_ogran,
assume = nonnegative);
/с помощью команды dual конструируем двойственную ЗЛП, записываем соответствующие систему ограничений и целевую функцию, вычисляем оптимальное решение, минимизируя целевую функцию двойственной задачи/
[> dual(object_function, system_ogran, y);
[> system_ogran_dual: ={1< =-y1-3*y3-2*y4+3*y5,
3< =-y2+2*y3-5*y4+3*y5};
object_function_dual: =-2*y1-2*y2+6*y3-17*y4+32*y5;
[> Optimal_Min_dual: =minimize(object_function_dual,
system_ogran_dual, NONNEGATIVE);
/с помощью команды Minimize из пакета Optimization находим минимум целевой функции двойственной задачи, убеждаемся в справедливости основной теоремы двойственности/
[> Minimize(object_function_dual, system_ogran_dual,
assume = nonnegative);
|
|