Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Огляд засобів пакета лінійної оптимізації simplexСодержание книги
Поиск на нашем сайте
Команда, яка надає доступ до всіх команд пакета, має вигляд with(simplex); Після виконання указаної команди в оперативну пам’ять комп’ютера завантажуються усі процедури пакета. Для здійснення доступу тільки до однієї або декількох команд пакета можна скористатися тією самою командою з додатковими опціями with(simplex, nam1, nam2,…); де nam1,… – назви команд пакета: basis, convexhull, cterm, define_zero, display, dual, feasible, maximize, minimize, pivot, pivoteqn, pivotvar, ratio, setup, standardize, що викликають відповідні процедури, які надають можливість користувачеві поетапно розв’язувати задачу лінійного програмування за симплекс-методом [67]. Розглянемо найбільш важливі для розв’язування задачі лінійного програмування функції maximize і minimize. Синтаксис звернення до указаних команд має доволі простий вигляд maximize (f, consts), minimize (f, consts), де f – лінійний вираз, який описує цільову функцію задачі; consts – множина або список лінійних обмежень задачі. Процедури maximize та minimize повертають або множину рівностей, які описують оптимальний план > with(simplex): maximize(-x[1]+2*x[2]+3*x[3], {x[1]+2*x[2]-3*x[3]<=4, 5*x[1]-6*x[2]+7*x[3]<=8, 9*x[1]+10*x[3]<=11}, NONNEGATIVE);
, > minimize(-x[1]+2*x[2]+3*x[3], {x[1]+2*x[2]-3*x[3]<=4, 5*x[1]-6*x[2]+7*x[3]<=8, 9*x[1]+10*x[3]<=11}, NONNEGATIVE); , або порожню множину (рис. 5.1), якщо система обмежень consts є несумісною > maximize(3*y[1]-y[2], {-y[1]-y[2]>=-1, y[1]+y[2]>=2}, NONNEGATIVE);
Рисунок 5.1 – Оптимальний план або порожня множина, або NULL, якщо цільова функція на допустимій множині необмежена
> maximize(47*y[1]+43*y[2], {-3*y[1]-y[2]<=-9, 17*y[1]-64*y[2]<=51, 6*y[1]+18*y[2]>=56}, NONNEGATIVE);
Звернемо увагу, що у випадку відсутності розв’язку задачі ЛП через необмеженість області допустимих значень (рис. 5.2) команда maximize повертає результат NULL, який не супроводжується жодним записом в області виведення результатів виконання команди на екрані монітора. Очевидно, якщо переформулювати указану задачу на знаходження найменшого значення, то розв’язок буде знайдено
> minimize(47*y[1]+43*y[2], {-3*y[1]-y[2]<=-9, 17*y[1]-64*y[2]<=51, 6*y[1]+18*y[2]>=56}, NONNEGATIVE); . Рисунок 5.2 – Область допустимих значень
Оптимальний розв’язок може бути підставлений у цільову функцію для одержання її екстремального значення. Це можна зробити за допомогою команд eval або subs > 'z'[min] = subs ({y[1]=53/24, y[2]=19/8}, 47*y[1]+43*y[2]);
.
Інші функції пакета simplex Функція display(C) виводить множина лінійних залежностей С в матричній формі: > display([x[1]+3*x[2]<=12, -2*x[1]-x[2]<=-6, 19*x[1]-8*x[2]<=57]); Ця функція може бути використана для наглядного переходу до двоїстої задачі. Функція dual(f,C,y) повертає двоїсту задачу до заданої, де f – цільова функція; С – множина лінійних залежностей системи обмежень; y – позначення змінної двоїстої задачі > dual((-4)*x[1]-2*x[2], [x[1]+3*x[2]<=12, -2*x[1]-x[2]<=-6, 19*x[1]-8*x[2]<=57], y); . Для отримання більш наглядної форми запису отриманої задачі можна використати уже знайому нам команду display > display(%[2]); . Функція f easible перевіряє систему на сумісність(якщо одержано true, то система обмежень сумісна, якщо false – несумісна); > feasible({2*x+3*y<=4, 5*x+6*y=9}, NONNEGATIVE);
> feasible({-y[1]-y[2]>=-1, y[1]+y[2]>=2}, NONNEGATIVE); Останній приклад відповідає пустій множині допустимих значень невідомих, що зображена на рис. 5.1.
|
||||
Последнее изменение этой страницы: 2017-02-07; просмотров: 156; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.59.69.58 (0.005 с.) |