ТЕМА 2. ЦІЛОЧИСЕЛЬНЕ ПРОГРАМУВАННЯ

Розглянемо наступну модель:

Оптимізувати            i cjxj (2.1)

при обмеженнях

Задачі оптимізації такого класу називаються задачами цілочисельного (або діофантового, або дискретного) програмування. Якщо р = п, тобто всі змінні повинні бути цілими числами, то модель визначає цілком цілочисельну задачу. У протилежному випадку, тобто коли р<п, маємо частково цілочисельну задачу.

Задача цілочисельного програмування відрізняється від будь-якої задачі лінійного програмування умовами дискретності (2.4). У випадку коли лінійні обмеження (2.2) відповідають деякої мережної моделі, існує оптимальне рішення задачі (2.1), (2.2) і (2.3), що задовольняє обмеженням цілочисельності (2.4). Цей результат уже відомий з теореми про безперервність для потоків у мережах. Однак у загальному випадку умова (2.4) накладає додаткові обмеження, унаслідок яких максимальне значення цільової функції задачі цілочисельного програмування виявляється менше значення цільової функції відповідної задачі лінійного програмування.

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

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

вимога цілочисельності.

Витрати на підготовку виробництва. Може виникнути необхідність розгляду операції, виконання якої пов'язане з так названими постійними витратами (або витратами на підготовку виробництва) Cj завжди, коли відповідне

значення Xj > 0, причому Cj не залежить від фактичного значення Xj.

Розміри партій. При розробці деяких виробничих планів на значення Xj можуть накладатися обмеження виду Xj = 0 або Xj > Li.

Рішення типу „так - ні ". Може виникнути необхідність визначення ситуацій „або - або " іншого характеру. З цією метою на змінні Xj

накладаються обмеження Xj =1 або Xj =0, що відповідають рішенням

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

У ряді інших задач прийняття рішень може знадобитися побудова моделей цілочисельного програмування. Один клас таких задач пов' язаний з рішеннями, що визначають вибір упорядкувань, календарних планів (розкладів) і маршрутів. Прикладом задачі, що належить до цього класу, може служити задача комівояжера. У цій задачі потрібно відшукати найкоротший маршрут комівояжера, що повинен побувати в кожнім з п міст, причому маршрут починається та закінчується містом 1. Як інший приклад задач зазначеного класу можна взяти задачу складання розкладу обробки деталей на верстатах. Найбільш простим варіантом цієї задачі є випадок, коли кожна з п деталей повинна оброблятися на кожнім з k верстатів. Припустимо, що деталь не можна обробляти на верстаті j, поки не закінчена її обробка на верстаті Припустимо, далі, що час обробки кожної деталі на кожному верстаті строго фіксований. Тоді оптимальна послідовність визначається розкладом обробки, що мінімізує загальну тривалість обробки всіх деталей на усіх верстатах. Іншими прикладами задач упорядкування, вибору маршруту і календарного планування є задачі балансу складальних ліній, мережного планування при обмежених ресурсах, попереджувального ремонту при обмеженнях на робочу силу і диспетчирування автотранспорту.

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

Комбінаторна оптимізаційна задача полягає у пошуку серед кінцевої множини альтернатив однієї, якій відповідає екстремальне значення прийнятої цільової функції. Так, наприклад, у задачі комівояжера при п містах ця кінцева безліч містить (п-1)! різних допустимих маршрутів, що починаються та закінчуються в місті 1. У найпростішій модифікації задачі обробки деталей

кінцева множина альтернатив включає (п!)к допустимих послідовностей обробки п деталей на k верстатах.

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

Якщо деякі коефіцієнти aij у лінійних обмеженнях (2.2) у якій-небудь

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

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

Практично ефективні алгоритми. З усього викладеного вище очевидно, що загальний алгоритм рішення задач цілочисельного програмування повинний виключати необхідність явного перебору всіх допустимих альтернатив. Потрібні методи, що забезпечують частковий перебір порівняно невеликого числа допустимих варіантів і неявний перебір всіх інших. Нагадаємо, що симплексний метод, застосовуваний для рішення звичайних задач лінійного програмування, має саме такі характеристики. Цей метод передбачає оцінку лише невеликого числа всіх припустимих базисних рішень. Аналогічно в рекурентних співвідношеннях, використовуваних у методі динамічного програмування, застосовують принцип оптимальності, що дозволяє усунути необхідність перебору всіх припустимих рішень. Ефективність цих методів оптимізації, заснованих на частковому переборі, виправдує постановку питання про пошук аналогічних підходів до рішення задач цілочисельного програмування.


Авторы: 239 А Б В Г Д Е З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

Книги: 268 А Б В Г Д Е З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я