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σPben j= 1j = σ( i )Pben j= 0xσy= Pσxyben= 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= ∑ki = 1αbenPσben∑ αben= 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 j ≥ 0
∀ ben : ∑j = 1nMben j= 1
∀ j : ∑i = 1nMbenj= 1
∀ ben , j : Mben j≥ 0
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)fbir( M)
- fbir( Pτ) < fbir( 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σ)=∑ni=1iaσ(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.