У мене є сім'я проблем лінійного програмування: максимізувати відповідно до ,. Елементи, , і - це неотримані цілі числа, суворо позитивний. ( також має бути цілісним, але я буду хвилюватися про це пізніше.)
У моїй заяві часто буває, що коефіцієнти і такі, що спрощений однопрохідний алгоритм дає оптимальне рішення для кожного вибору : алгоритм однопрохідного визначення елементів послідовно, вибираючи кожен бути максимально можливим значенням, що відповідає вже визначеним значенням . У простому мові послідовність введення змінних справедлива до , і він припиняється після кроки. Це економить багато часу порівняно з симплекс-набором.
Цей алгоритм працює, коли стовпці та елементи були відсортовані від "дешевого" до "дорогого". Змінна "дешева" - це стовпець із загалом малими значеннями, для яких відповідний елемент великий: для цього елемента ви отримуєте велику кількість продукції з не надто великим попитом на обмеження . Тож алгоритм просто говорить: "Зробіть спочатку легкі речі".
Моє запитання: яка властивість і запевнив би нас, що цей спрощений алгоритм працює для всіх ? Моя початкова думка полягала в тому, що ненульові елементи повинно збільшуватися в кожному ряду, але це не правильно.
Ось декілька прикладів, все з : , , , . Для всіх цих ситуацій послідовний алгоритм дає оптимальне рішення для всіх значень (шляхом чисельного експерименту). є єдиним, для якого також працюють усі перестановки стовпців. і особливо збиваючі, оскільки виглядає дорожче, ніж і дорожче, ніж .
Я був би вдячний за будь-які вказівки до літератури, за будь-які подібні проблеми чи взагалі будь-які пропозиції. Мабуть, були й інші випадки, коли деякі змінні можна визначити «дешевшими», ніж інші, і їх можна спокійно зробити першими. Зважаючи на всю роботу, яку робили над лінійним програмуванням протягом багатьох років, схоже, що щось подібне, мабуть, вийшло, але я не зміг його знайти.