Якщо, всі базисні тридцятилітні
2. Якщо серед сукупності координат оптимального рішення x(£k, C) є єдина неціла координата, то додаткове лінійне обмеження (17) будується по цій координаті. Якщо нецілих координат в x(£k, C) більше однієї, то виберемо координату з найменшим номером. Нехай нею виявилася xi0. Складемо додаткове лінійне обмеження
3. Додамо умови (18, 19) до умов (£k, C) – задачі. Одержимо нову (£k+1, C) – задачу. Тому що оптимальне рішення x(£k, C) (£k, C) – задачі визначало одну з вершин багатогранника умов, то воно може бути обране в якості первісного опорного рішення для знову отриманої задачі. А це означає, що останню симплексну таблицю (£k, C) – задачі можна взяти в якості вихідної для (£k+1, C) – задачі, доповнивши її умовою (18).
Отже, симплексна таблиця для (£k+1, C) – задачі виходить із останньої симплексної таблиці для (£k, C) – задачі шляхом облямівки (i+1) – й рядком з елементами:
де
Одержимо нову задачу, змінними якої є
Позначимо через k номер псевдо рішення (£k, C) – задачі; тоді напрямним рядком є i+k+ 1-я рядок, k =0, 1, 2,…... Тому на кожному етапі перетворення таблиці вектор Ai+k+i буде виводитися з таблиці. Можна довести, що через кінцеве число кроків або буде знайдене цілочисленне рішення, або буде виявлена її нерозв'язність, а тим самим нерозв'язність (£ц, C) – задачі.
Якщо рішення (£k, C) – задачі завершується побудовою оптимального цілочисленного рішення x*, те m, перших його компонентів визначають рішення цілочисленної задачі; якщо серед координат х* є дробові, те один із дробових компонентів (раніше певним правилом) породжує додаткове обмеження й процес рішення повинен бути продовжений з новим рядком, що облямовує. Рядок, використовуваний раніше для облямівки, викреслюється й більше для побудови розширених задач не відновлюється.
Процедуру рішення (£k, C) – задачі (k=0, 1,…)і аналізу отриманого рішення назвемо великою ітерацією. Номер великої ітерації збігається з номером розв'язуваної (£k, C) – задачі.
Результатом великої ітерації є перехід до нового (£k+1, C) – задачі або закінчення рішення задачі.
Уведемо: 1) осередок i, у якій будемо запам'ятовувати номер рядка, на підставі якої будується чергове додаткове лінійне обмеження, 2) лічильник r, що відповідає номеру проведеної великої ітерації. Позначимо x*(£r, C) оптимальне рішення (£r, C) – задачі. Помітимо, що позначення (£r, C) – задача, еквівалентне (£r, C), уведено в блок-схемі для зручності запису.
При деяких умовах вдається довести теорему про кінцівку першого алгоритму Гомори, що ми приведемо без доказу.
Теорема. Нехай множина оптимальних планів задачі (£0, C) обмежено й виконуються наступні умови:
1) сi – цілі коефіцієнти цільової функції F(x) (i =1,2,…,n),рядок цільової функції в симплексній таблиці враховується при виборі рядка для побудови правильного відсікання;
2) справедливо одне із двох тверджень: або цільова функція
Тоді перший алгоритм Гомори вимагає кінцевого числа більших ітерацій.
4. Другий алгоритм Гомори
Другий алгоритм Р. Гомори призначається для рішення задач, у яких вимога цілочисленності накладена на деякі змінні (зокрема й на все). Ми його розглянемо стосовно до задач частково цілочисленного типу, розуміючи, що обчислювальна схема буде справедливої й для задач, повністю цілочисленних.
Нехай в області, певної умовами:
потрібно максимізувати функцію
Метод рішення задачі (20–23) ґрунтується на тій же ідеї, що й метод рішення повністю цілочисленних задач. А саме: будується область £k, що при k = 0 визначається умовами (20–21); вирішується отримана при цьому задача лінійного програмування (20–21, 23). Якщо задача (20–21, 23) виявляється розв'язної, то отримане оптимальне рішення її аналізується на допустимість для вихідної задачі цілочисленного програмування (20–23). Якщо знайдене рішення виявляється целочисленным, то одночасно воно буде оптимальним для (20–23). Якщо оптимальне рішення (£k, C) – задачі виявляється неприпустимим для вихідної задачі (20–23), те здійснюється побудова правильного відсікання й перехід до рішення нової задачі,
Другий алгоритм Р. Гомори формулюється у вигляді наступної теореми:
Теорема. Нехай х(£k, C) – оптимальне рішення (£k, C) – задачі,
де
визначає правильне відсікання. Блок-схема другого алгоритму Р. Гомори аналогічна блок-схемі першого алгоритму Р. Гомори й відрізняється лише правилом побудови коефіцієнтів правильного відсікання.
Правило побудови правильного відсікання
Нехай x(£k, C) не задовольняє умові цілочисленності,
Умови кінцівки другого алгоритму Гомори:
1) Цільова функція F(x) задовольняє умові цілочисленності. Це враховується при виборі рядка k для побудови правильного відсікання.
2) Виконано принаймні одне із двох умов:
2') цільова функція обмежена знизу на багатогранній множині £= £0;
2») задача (£0ц, C)має принаймні один план.
За допомогою другого алгоритму Гомори можна (у випадку n1=n) вирішувати й повністю цілочисленну задачу лінійного програмування. Однак у цьому випадку немає підстав для порівняння ефективності другого й першого алгоритмів Гомори.
5. Алгоритм Дальтона й Ллевелина
Другий алгоритм Гомори має справа із частково цілочисленними задачами лінійного програмування. Дальтон і Ллевелин розглядають широкий клас задач - частково дискретні задачі лінійного програмування й стосовно до них модифікують другий алгоритм Гомори.
Нагадаємо, що рішенням задачі дискретного програмування будемо називати вектор, координати якого належать £ц області виду:
і максимізує значення функції
Будемо припускати, що
Теорема. Нехай x(£k, C) – оптимальне рішення задачі (27–28, 30),