Yönlendirilmemiş bir grafiğin minimum kesimini bulma


25

İşte çözmeye çalıştığım bir sınavdan bir soru:

Olumsuz ağırlıkları olan yönlendirilmemiş bir grafik için minimum kesimi bulmaya çalışıyorum. Max-flow min-cut teoremini kullanmanın yanı sıra bunu yapmanın başka yollarını da bilmiyorum. Ancak grafik yönlendirilmemiş, peki nasıl yönlendirmeliyim? Her iki ucunda kenarları yönlendirmeyi düşündüm, ama sonra hangi köşe kaynak olacaktı ve hangi köşe lavabo olacaktı? Yoksa minimum kesimi bulmanın başka bir yolu var mı?w ( e ) 0Gw(e)0


1
Orijinal grafikte kaynağınız ve hedefiniz yoksa, birden çok seçeneği denemeniz gerekecek. (Herhangi bir ve , minimum kesim ikisini ayırmayabilir.)tst
Raphael

Verilen kaynak ve havuz düğümleri için min-kesimi mi yoksa grafiğin min-kesisini mi bulmaya çalışıyorsunuz?
Peter

@Peter: Grafiğin minimum kesimi.
Jozef

Yanıtlar:


13

Yönlendirilmemiş bir grafiğin minik kesimini bulmak için birçok algoritma vardır. Karger'in algoritması basit ama etkili bir randomize algoritmadır.

Kısacası, algoritma rastgele bir şekilde kenarları seçerek ve bunları kendi halkaları çıkarılmış olarak daraltarak çalışır. İki düğüm kaldığında işlem durur ve iki düğüm bir kesimi temsil eder. Başarı olasılığını artırmak için, rastgele algoritma birkaç kez çalıştırıldı. Koşuları yaparken, şimdiye kadar bulunan en küçük kesimi takip ediyor.

Daha fazla ayrıntı için Wikipedia girişine bakın. Belki daha iyi bir giriş için, Olasılık ve Bilgisayar'ın ilk bölümünü inceleyin: Michael Mitzenmacher ve Eli Upfal'ın Randomize Algoritmaları ve Olasılık Analizi.


Bu bir yaklaşım algoritması mı?
Strin

@Strin Yüksek olasılıkla minimum kesimi bulan randomize bir algoritmadır.
Juho

1
Karger'ın minimum ağırlıkta bir kesim bulmak için uygun olduğunu sanmıyorum. Minimum kesimi bulma olasılığının türetilmesi, minimum kardinalite kesiği bulmasına bağlıdır; Karger'ın pek çok hafif kenarı olan minimum bir kesim bulması pek olası değildir.
Sumudu Fernando

8

Her yönlendirilmemiş kenar için iki yönlendirilmiş kenar ve .( u , v , w e ı g h t ) ( v , u , a , e i g h t )(u,v,weight)(u,v,weight)(v,u,weight)

... ama sonra hangi köşe kaynak olacaktır ve hangi köşe lavabo olacaktır?

Önemli değil.


1
Bu neden önemli değil?
Kodlama Wombat

1

Ford-Fulkerson algoritması sizin için çalışmalı. İki sahte köşeler viz oluşturabilirsiniz. kaynak ve lavabo.

Ayrıca Edmonds-Karp algoritmasına da bakınız . Bunun iki çeşidi var:

  1. Bir sürüm en kısa yolu seçiyor
  2. Diğer, maksimum kapasiteye sahip bir yol seçer

keyfi bir yol seçen Ford-Fulkerson'ın aksine.

Bu iyi bir kaynaktır.


Cs.stackexchange'e hoş geldiniz! Sahte köşelerin mevcut grafiğe nasıl bağlandığını daha fazla açıklayabilirseniz, OP'ye yardımcı olabilir. Ve yeni kenarların kenar ağırlıkları ne olacak.
Paresh
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.