Doğrusal bir program olarak sıralama


24

Şaşırtıcı sayıda sorun, doğrusal programlamaya (LP) oldukça doğal indirgenmelere sahiptir. Ağ akışları, iki taraflı eşleştirme, sıfır toplamlı oyunlar, en kısa yollar, bir lineer regresyon şekli ve hatta devre değerlendirmesi gibi örnekler için [1] Bölüm 7'ye bakın !

Devre değerlendirme lineer programlama azalttığı için, herhangi bir sorun, doğrusal bir programlama formülasyonu olması gerekir. Bu nedenle, doğrusal bir programa indirgeme yoluyla "yeni" bir sıralama algoritmasına sahibiz. Yani benim sorularımP

  1. Bir gerçek sayı dizisini sıralayacak doğrusal program nedir ?n
  2. LP'ye azaltma ve çözme sıralama algoritmasının çalışma süresi nedir?

  1. Algoritma , S. Dasgupta, C Papadimitriou ve U. Vazirani tarafından (2006)


3
Cevabı zaten biliyorsan, neden soruyu soruyorsun?
Yuval Filmus,

2
@Joe Cevabı bilsen bile ilginç materyaller göndermek iyidir. Bunu yapmanın geleneksel yolu, kendi sorunuzu (ayrıntılı) bir alıntıyla yanıtlamaktır (bozulabilen bazı belgelere bağlantılar göndermek yerine).
Raphael

@Raphael Başka kimse cevap yazmazsa, zamanım olduğunda cevap vereceğim.
Joe

@ YuvalFilmus, cevabını bildiğiniz bir soruyu soran yığın borsalarında açıkça teşvik ediliyor .
Joe,

Yanıtlar:


23

Aşağıdaki cevap, temelde zaten bildiğinize eşdeğerdir, ancak biraz daha az "büyülü" görünebilir. Öte yandan, daha tekniktir, ancak genel tekniğin "sorununuzu permütasyon matrislerinde bir optimizasyon olarak yazıp Birkhoff-von Neumann'ı çağırmak" olduğunu bilmek harika bir şey.

Bir permütasyon için arasında tanımlamak permütasyon matris 0-1 matriks olarak bu şekilde ise ve aksi takdirde. Bu sadece bir vektör koordinatlarını permütasyona matrisidir uygun edin: sonra . Bundan sonra olarak göstereceğim .{ 1 , , n } P σ P i j = 1 j = σ ( i ) P i j = 0 x σ y = P σ x y i = x σ ( i ) y = P σ x σ ( x )σ{1,,n}PσPij=1j=σ(i)Pij=0xσy=Pσxyi=xσ(i)y=Pσxσ(x)

Bir başka tanım: Negatif olmayan bir matrisi , her biri sıralarından ve sütunlarından her birinin 1'i toplaması halinde iki kat hisse senedidir.Mn×nM

Ve kombinasyonel optimizasyonda çok önemli olan bir gerçek - Birkhoff-von Neumann teoremi:

Bir matris ve permütasyon matrisler, örneğin, bir konveks bir kombinasyonu yalnızca eğer iki kat stokastik ise ve permütasyon mevcut durumunda ve pozitif real şekilde ve .σ 1 , ... , σ k α 1 , ... , α k M = Σ k i = 1 α i P σ i Σ α i = 1Mσ1,,σkα1,,αkM=i=1kαiPσiαi=1

Şüpheli bir stokastik matrisin eşitsizlikler tarafından tanımlandığına dikkat edin

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

i:j=1nMij=1
j:i=1nMij=1
i,j:Mij0

Birlikte alınan tüm bu eşitsizlikler bir polipop belirler ve Birkhoff-von Neumann teoremi, bu polipopun uç noktalarının (köşeler) tümünün permütasyon matrisi olduğunu belirtir. Temel doğrusal programlamadan, bunun, sınırları olarak eşitsizlikleri olan (ve diğer kısıtlamaları olmayan) herhangi bir doğrusal programın, optimal bir çözüm olarak bir permütasyon matrisine sahip olacağı anlamına geldiğini biliyoruz.P

Bu nedenle, bir girdi verilirse sıralanması için doğrusal bir amaç gerekir :f a ( M )a=(a1,,an)fa(M)

  • fa(Pτ)<fa(Pσ) , sıralanır ancak sıralanmazsa .σ(a)τ(a)

Daha sonra en üst düzeye çıkarmak için objektif olan bir doğrusal program formüle ve kısıtlamaları, yukarıda eşitsizlikleri ve optimal bir çözüm olduğunu garanti edilmiştir permütasyon matris için şekilde sıralanır. Tabii ki, bu kolay "kapalı okuma" var dan .fa(M)Pσσσ(a)σPσ

için bir seçenek , burada . Bunu doğrulafa(M)vTMav=(1,,n)

  • bu, cinsinden doğrusaldır ;M
  • için , ;f a ( P σ ) = n i = 1 i a σ ( i )Pσfa(Pσ)=i=1niaσ(i)
  • Yukarıda maksimum bir halde bulunmasıdır olan sıralanır (çelişki: aksi takdirde iki koordinat geçiş olabilir ve daha yüksek bir değer sağlar).σ ( a ) σ ( a )σσ(a)σ(a)

Ve işte, sıralama için doğrusal bir programınız var. Sıralama için aptalca görünüyor, ama bu aslında optimizasyonda güçlü bir yöntemdir.


1
Başa çıkmadığım bir şey: çok sayıda optimal çözüm olduğunda, bazıları permitasyon matrisi olmayacak (ve bazıları elbette olacak). Bunu düzeltmenin birçok kolay yolu vardır: pertürbasyonla . a
Sasho Nikolov

1
Birden fazla optimal çözüm varsa, bazıları permitasyon matrisi olmayabilir (ancak her zaman bazı optimal çözümler permütasyon matrisi olacaktır). Amaç işlevi sabitse, uygulanabilir tüm çözümler en uygunudur.
Sasho Nikolov

1
@Turbo lineer program bu cevapta tamamen yazılmıştır. Açıkçası bütünlük kısıtlamaları yoktur. İkinci sorunuza cevap vermeye çalışmıyorum. Oturun ve sıralamak için yaptığım şekilde, iki kez stokastik matrisler üzerine doğrusal bir işlevi optimize etmek için GI'yi yazmaya çalışın. Başarısız olduğu yerde kendiniz görün.
Sasho Nikolov

1
Uygulamada muhtemelen simpleks kullanmak isteyebilirsiniz, ancak teoride, bir iç nokta yöntemi veya elipsoid yöntemi gibi bir polinom zaman LP çözücü, örneğin bir polinom zaman algoritması elde edebilirsiniz. Bu bit karmaşıklığı size zaman polinomu verecek . Kısıtlama matrisi TUM olduğunda (burada olduğu gibi), çok zamanlı çoklu zamanlayıcı çözücüler de var cstheory.stackexchange.com/questions/4454/… . a
Sasho Nikolov

1
Ve evet, en kolay şey emin sen bir minik rastgele pertürbasyonunu ekleyerek yapabilirsiniz bir tek en iyi çözümü var yapmaktır . a
Sasho Nikolov
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.