Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Постановка задачі цілочислового лінійного програмування, її інтерпретація та основні підходи до розв’язування




Цілочислове програмування

 

 

Існує доволі широке коло задач математичного програмування, в економіко-математичних моделях яких одна або кілька змінних мають набувати цілих значень. Наприклад, коли йдеться про кількість верстатів у цеху, тварин у сільськогосподарських підприємствах тощо.

Зустрічаються також задачі, які з першого погляду не мають нічого спільного з цілочисловими моделями, проте формулюються як задачі цілочислового програмування. Вимоги дискретності змінних в явній чи неявній формах притаманні таким практичним задачам, як вибір послідовності виробничих процесів; календарне планування роботи підприємства; планування та забезпечення матеріально-технічного постачання, розміщення підприємств, розподіл капіталовкладень, планування використання обладнання тощо.

Задача математичного програмування, змінні якої мають набувати цілих значень, називається задачею цілочислового програмування. У тому разі, коли цілочислових значень мають набувати не всі, а одна чи кілька змінних, задача називається частково цілочисловою.

До цілочислового програмування належать також ті задачі оптимізації, в яких змінні набувають лише двох значень: 0 або 1 (булеві, або бінарні змінні).

Умова цілочисловості є по суті нелінійною і може зустрічатися в задачах, що містять як лінійні, так і нелінійні функції. Розглянемо задачі математичного програмування, в яких крім умови цілочисловості всі обмеження та цільова функція є лінійними, що мають назву цілочислових задач лінійного програмування.

Загальна цілочислова задача лінійного програмування записується так:

(5.1)

за умов:

; (5.2)

; (5.3)

— цілі числа . (5.4)

у загальному випадку вимога цілочисловості змінних значно ускладнює розв’язування задач математичного програмування.

Для знаходження оптимальних планів задач цілочислового програмування застосовують такі групи методів:

1) точні методи:

· методи відтинання;

· комбінаторні методи;

2) наближені методи.

Основою методів відтинання є ідея поступового «звуження» області допустимих розв’язків розглядуваної задачі. Пошук цілочислового оптимуму починається з розв’язування задачі з так званими послабленими обмеженнями, тобто без урахування вимог цілочисловості змінних. Далі введенням у модель спеціальних додаткових обмежень, що враховують цілочисловість змінних, багатогранник допустимих розв’язків послабленої задачі поступово зменшують доти, доки змінні оптимального розв’язку не набудуть цілочислових значень.

До цієї групи належать:

а) методи розв’язування повністю цілочислових задач (дробовий алгоритм Гоморі);

б) методи розв’язування частково цілочислових задач (другий алгоритм Гоморі, або змішаний алгоритм цілочислового програмування).

Комбінаторні методи цілочислової оптимізації базуються на ідеї перебору всіх допустимих цілочислових розв’язків, однак, згідно з їх процедурою здійснюється цілеспрямований перебір лише досить невеликої частини розв’язків. Найпоширенішим у цій групі методів є метод гілок і меж.

Починаючи з розв’язування послабленої задачі, він передбачає поділ початкової задачі на дві підзадачі через виключення областей, що не мають цілочислових розв’язків, і дослідження кожної окремої частини багатогранника допустимих розв’язків.

Досить поширеними є також наближені методи розв’язування цілочислових задач лінійного програмування. Оскільки для практичних задач великої розмірності за допомогою точних методів не завжди можна знайти строго оптимальний розв’язок за прий­нятний час або для розв’язування задачі використовуються наближено визначені, неточні початкові дані, то часто в реальних задачах досить обмежитися наближеним розв’язком, пошук якого є спрощеним.

Значна частина наближених алгоритмів базується на використанні обчислювальних схем відомих точних методів, таких, наприклад, як метод гілок і меж.

До наближених методів належать: метод локальної оптимізації (метод вектора спаду); модифікації точних методів; методи випадкового пошуку та ін.

Головними показниками для зіставлення ефективності застосування конкретних наближених алгоритмів на практиці є такі: абсолютна та відносна похибки отриманих наближених розв’язків.

, ,

де Z — цільова функція (в даному разі для визначеності допускаємо вимогу відшукання максимального її значення); Х1— наближений розв’язок, знайдений деяким наближеним методом; Х* — оптимальний план задачі.

5.2. Методи відтинання. Метод Гоморі

В основу методів цілочислового програмування покладено ідею Данціга. Допустимо, що необхідно розв’язувати задачу лінійного програмування, всі або частина змінних якої мають бути цілочисловими. Можливо, якщо розв’язувати задачу, не враховуючи умову цілочисловості, випадково одразу буде отримано потрібний розв’язок. Однак така ситуація малоймовірна. Переваж­но розв’язок не задовольнятиме умову цілочисловості. Тоді накладають додаткове обмеження, яке не виконується для отриманого плану задачі, проте задовольняє будь-який цілочисловий розв’язок. Таке додаткове обмеження називають правильним відтинанням. Система лінійних обмежень задачі доповнюється новою умовою і далі розв’язується отримана задача лінійного програмування. Якщо її розв’язок знову не задовольняє умови цілочисловості, то будується нове лінійне обмеження, що відтинає отриманий розв’язок, не зачіпаючи цілочислових планів. Процес приєднання додаткових обмежень повторюють доти, доки не буде знайдено цілочислового оптимального плану, або доведено, що його не існує.

Слід відмітити, що визначення правила для реалізації ідеї Данціга стосовно формування додаткового обмеження виявилось досить складним завданням і першим, кому вдалось успішно реалізувати цю ідею, був Гоморі.

Розглянемо алгоритм, запропонований Гоморі, для розв’язування повністю цілочислової задачі лінійного програмування, що ґрунтується на використанні симплексного методу і передбачає застосування досить простого способу побудови правильного відтинання.

Отже, для розв’язування цілочислових задач лінійного програмування (5.1)—(5.4) методом Гоморі застосовують такий алгоритм:

1. Симплексним методом розв’язується задача без вимог цілочисловості змінних — (5.1)—(5.3).

Якщо серед елементів умовно-оптимального плану немає дробових чисел, то цей план є розв’язком задачі цілочислового програмування (5.1)—(5.4).

Якщо задача (5.1)—(5.3) не має розв’язку (цільова функція необмежена, або система обмежень несумісна), то задача (5.1) — (5.4) також не має розв’язку.

2. Коли в умовно-оптимальному плані є дробові значення, то вибирається змінна, яка має найбільшу дробову частину. На базі цієї змінної (елементів відповідного рядка останньої симплексної таблиці, в якому вона міститься) будується додаткове обмеження Гоморі:

.

3. Додаткове обмеження після зведення його до канонічного вигляду і введення базисного елемента приєднується до останньої симплексної таблиці, яка містить умовно-оптимальний план. Отриману розширену задачу розв’язують і перевіряють її розв’язок на цілочисловість. Якщо він не цілочисловий, то процедуру повторюють, повертаючись до п. 2. Так діють доти, доки не буде знайдено цілочислового розв’язку або доведено, що задача не має допустимих розв’язків на множині цілих чисел.

Загалом, алгоритм Гоморі в обчислювальному аспекті є мало вивченим. Якщо в лінійному програмуванні спостерігається відносно жорстка залежність між кількістю обмежень задачі та кількістю ітерацій, що необхідна для її розв’язування, то для цілочислових задач такої залежності не існує. Кількість змінних також мало впливає на трудомісткість обчислень. Очевидно, процес розв’язання цілочислової задачі визначається не лише її розмірністю, а також особливостями багатогранника допустимих розв’язків, що являє собою набір ізольованих точок.

Як правило, розв’язування задач цілочислового програмування потребує великого обсягу обчислень. Тому при створенні програм для ЕОМ особливу увагу слід приділяти засобам, що дають змогу зменшити помилки округлення, які можуть призвести до того, що отриманий цілочисловий план не буде оптимальним.

 

5.3. Комбінаторні методи. Метод гілок та меж

В основі комбінаторних методів є перебір можливих варіантів розв’язків поставленої задачі. Кожен з них характеризується певною послідовністю перебору варіантів та правилами виключення, що дають змогу ще в процесі розв’язування задачі виявити неоптимальні варіанти без попередньої їх перевірки. Відносна ефективність різних методів залежить від того, наскільки кожен з них уможливлює скорочення необхідного процесу перебору варіантів у результаті застосування правила виключення.

Розглянемо один із комбінаторних методів. Для розв’язування задач цілочислового програмування ефективнішим за метод Гоморі є метод гілок і меж. Спочатку, як і в разі методу Гоморі, симплексним методом розв’язується послаблена (без умов цілочисловості) задача. Потім вводиться правило перебору.

Нехай потрібно знайти хj — цілочислову змінну, значення якої хj =в оптимальному плані послабленої задачі є дробовим. Очевидно, що в деякому околі даної точки також не існує цілочислових значень, тому відповідний проміжок можна виключити з множини допустимих планів задачі в подальшому розгляді. Таким проміжком є інтервал між найближчими до цілочисловими значеннями. Можна стверджувати, що на інтервалі цілих значень немає.

Наприклад, якщо =2,7 дістаємо інтервал , де, очевидно, немає хj, яке набуває цілого значення і оптимальний розв’язок буде знаходитися або в інтервалі , або . Виключення проміжку з множини допустимих планів здійснюється введенням до системи обмежень початкової задачі додаткових нерів­ностей. Тобто допустиме ціле значення xj має задовольняти одну з нерівностей виду:

або .

Дописавши кожну з цих умов до задачі з послабленими обмеженнями, дістанемо дві, не пов’язані між собою, задачі. Тобто, почат­кову задачу цілочислового програмування (5.1)—(5.4) поділимо на дві задачі з урахуванням умов цілочисловості змінних, значення яких в оптимальному плані послабленої задачі є дробовими.

Опишемо алгоритм методу гілок та меж:

1. Симплексним методом розв’язують задачу (5.1)—(5.3) (без вимог цілочисловості змінних). Якщо серед елементів умовно-оптимального плану немає дробових чисел, то цей розв’язок є оптимальним планом задачі цілочислового програмування (5.1)—(5.4).

Якщо задача (5.1)—(5.3) не має розв’язку (цільова функція необмежена, або система обмежень несумісна), то задача (5.1)—(5.4) також не має розв’язку.

2. Коли в умовно-оптимальному плані є дробові значення, то вибирають одну з нецілочислових змінних і визначають її цілу частину .

3. Записують два обмеження, що відтинають нецілочислові розв’язки:

,

.

4. Кожну з одержаних нерівностей приєднують до обмежень початкової задачі. В результаті отримують дві нові цілочислові задачі лінійного програмування.

5. У будь-якій послідовності розв’язують обидві задачі.
У разі, коли отримано цілочисловий розв’язок хоча б однієї із задач, значення цільової функції цієї задачі зіставляють з почат­ковим значенням. Якщо різниця не більша від заданого числа e, то процес розв’язування може бути закінчено. У разі, коли цілочисловий розв’язок одержано в обох задачах, то з роз­в’язком початкової зіставляється той, який дає краще значення цільової функції. Якщо ж в обох задачах одержано нецілочислові розв’язки, то для дальшого гілкування вибирають ту задачу, для якої здобуто краще значення цільової функції і здійснюють перехід до кроку 2.

 




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 3462; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.024 сек.