Які лінійні програми Integer прості?


13

Намагаючись вирішити проблему, я закінчив виражати її частину як наступну цілу лінійну програму. Тут - усі додатні цілі числа, подані як частина вхідних даних. Зазначений підмножина змінних x i j встановлюється нулем, а решта може приймати додатні інтегральні значення:,m,n1,n2,,n,c1,c2,,cm,wxij

Мінімізуйте

j=1mcji=1xij

На тему:

j=1mxij=nii

i=1xijwj

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

Як визначити, чи можна розв’язати певну цілу лінійну програму за багаточлен? Які цілі лінійні програми, як відомо, є простими? Зокрема, чи можна вирішити вищезазначену програму в поліноміальний час? Не могли б ви вказати на деякі посилання на це?

Відповіді:


16

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

Наступні статті Вікіпедії можуть бути корисними.


1
@Yoshio: Дякую, що відповідає моєму конкретному випадку, коли я його перевірив. Чи знаєте ви про умови, відмінні від повної одномодульності, які гарантують поліноміально-часове рішення?
gphilip

2
@gphilip: Я б узагальнив тези тез терміном "цілісність багатогранників", і література з цього приводу величезна. У книзі "Комбінаторна оптимізація: упаковка та покриття" Джерарда Корнуйолса (опублікована у 2001 р.) Описано кілька результатів.
Йосіо Окамото

Axb

1
AAA[AA]

1
Дозвольте мені змінити свої скорочені правила наступним чином. (1) Дублювання ряду підтримує загальну одномодність. (2) Зворот знаку ряду підтримує повну одномодність. Вони повинні виконати роботу.
Йосіо Окамото

8

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

Слід поглянути на це: http://en.wikipedia.org/wiki/Linear_program#Integer_unknowns


Я думав про вашу матрицю, і вона виглядає абсолютно одномодно.
Vinicius dos Santos

@Vinicius: Не могли б ви сказати мені, чому матриця виглядає для вас абсолютно одномодульною? Я не міг цього зрозуміти, незважаючи на коментар Йосіо (будь ласка, дивіться мою відповідь там).
gphilip

@gphilip: На en.wikipedia.org/wiki/Unimodular_matrix у розділі "Загальні цілком одномодульні матриці" в першому пункті перелічено 4 достатні умови, щоб матриця була одномодульною. Я думаю, що цих умов, разом із ярликом, який прокоментував Йошіо, достатньо, щоб показати, що проблему можна вирішити за багаточлен.
Vinicius dos Santos

@gphilip: Яка мотивація для цієї лінійної програми?
Vinicius dos Santos

@Vinicius: Ми намагаємось вирішити проблему, сформульовану в термінах, змінюючи вхідну матрицю певним чином, щоб отримати іншу матрицю з деякими хорошими властивостями. Цей LP вийшов з однієї підпроблеми під час процесу.
gphilip

2

Ціла програма з лише рівностями може бути розв'язана лінійною програмою.


це здавалося важливим заради себе.
Т ....

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

2
@SashoNikolov вироджений випадок, але, безумовно, дійсний.
Т ....

чому негативне голосування?
Т ....
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.