Сортування як лінійна програма


24

Дивовижна кількість проблем має досить природне скорочення до лінійного програмування (LP). Див. Розділ 7 [1] для прикладів, таких як мережеві потоки, двостороннє узгодження, ігри з нульовою сумою, найкоротші шляхи, форма лінійної регресії та навіть оцінка схеми!

Оскільки оцінка ланцюга зводиться до лінійного програмування, будь-яка проблема в повинна мати форму лінійного програмування. Тому у нас є "новий" алгоритм сортування через скорочення до лінійної програми. Отже, мої запитання єП

  1. Яка лінійна програма, яка буде сортувати масив з реальних чисел?н
  2. Який час роботи алгоритму сортування «скоротити до LP» та «вирішити»?

  1. Алгоритми С. Дасгупта, К. Пападімітріу та У. Вазірані (2006)


3
Якщо ви вже знаєте відповідь, чому ви ставите це питання?
Yuval Filmus

2
@Joe Чудово розміщувати цікавий матеріал, навіть якщо ви знаєте відповідь. Звичайний спосіб зробити це - відповісти на власне запитання за допомогою (детального) прийому (замість публікації посилань на якийсь документ, який може розірватися).
Рафаель

@Raphael Якщо ніхто більше не пише відповіді, я буду, коли встигну.
Джо

@YuvalFilmus, що задає питання, на яке ви знаєте, відповідь прямо пропонується під час обміну стеками .
Джо

Відповіді:


23

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

Для перестановки з { 1 , ... , п } визначимо матрицю перестановок Р сг як 0-1 матриці , такий , що Р я J = 1 , якщо J = σ ( я ) і Р я J = 0 в іншому випадку. Це просто матриця, яка перетворює координати вектора x відповідно до σ : якщо y = P σ x, то y i = x σσ{1,,н}ПσПij=1j=σ(i)Пij=0хσу=Пσх . Я позначаюy= P σ xякσ(x)відтепер.уi=хσ(i)у=Пσхσ(х)

Ще одне визначення: негативна матриця M є подвійно стохастичною, якщо кожен її рядок і кожен з її стовпців дорівнює 1.н×нМ

І один факт, який дуже важливий у комбінаторній оптимізації, - теорема Біркгоффа фон Неймана:

Матриця є вдвічі стохастичною тоді і лише тоді, коли вона є опуклою комбінацією матриць перестановки, тобто тоді і тільки тоді, коли існують перестановки σ 1 , , σ k і позитивні реалі α 1 , , α k такі, що M = k i = 1 α i P σ i і α i = 1 .Мσ1,,σкα1,,αкМ=i=1кαiПσiαi=1

Зауважте, що подвійно стохастична матриця визначається нерівностями

j : n i = 1 M i j = 1 i , j : M i j0

i:j=1нМij=1
j:i=1нМij=1
i,j:Мij0

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

Тому , з огляду на вхід бути відсортований, нам просто потрібно придумати лінійна задача е в ( М ) , для яких:а=(а1,,ан)fа(М)

  • якщо σ ( a ) відсортовано, але τ ( a ) - ні.fа(Пτ)<fа(Пσ)σ(а)τ(а)

Потім сформулюйте лінійну програму з метою максимізувати та нерівності, наведені вище, як обмеження, і вам гарантується, що оптимальним рішенням є матриця перестановки P σ для σ, така що σ ( a ) відсортовано. Звичайно, легко "відчитати" σ з P σ .fа(М)Пσσσ(а)σПσ

fа(М)vТМаv=(1,,н)

  • М
  • Пσfа(Пσ)=i=1нiаσ(i)
  • σσ(а)σ(а)

І вуаля, у вас лінійна програма для сортування. Здається, нерозумно для сортування, але це насправді потужний метод оптимізації.


1
а

1
Коли є кілька оптимальних рішень, деякі можуть бути не матрицями перестановки (але завжди деяким оптимальним рішенням буде матриця перестановки). Якщо цільова функція є постійною, то всі можливі рішення оптимальні.
Сашо Ніколов

1
@Turbo лінійна програма повністю написана в цій відповіді. Очевидно, він не має обмежень для цілісності. Я не збираюся відповідати на ваше друге запитання. Сядьте і спробуйте записати GI як оптимізацію лінійної функції над подвійно стохастичними матрицями, як я це зробив для сортування. Побачте самі, де це не вдається.
Сашо Ніколов

1
а

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