Adaları pontonlarla NP-tam bağlamak mı?


10

Aklımda bir sorun var, sanırım bu bir NPC problemi ama bunu nasıl kanıtlayacağımı bilmiyorum.

İşte sorun:

Orada k çok büyük bir gölde adalar ve orada n yelpaze şeklinde dubaları. Bu dubalar aynı boyuttadır ancak farklı başlangıç ​​yönlerine sahiptir ve gölde farklı orijinal konumlardadır. Dubalar kütle merkezinin etrafında serbestçe dönebilir ve rotasyonla ilişkili bir maliyet yoktur.

Şimdi bu dubaları, göldeki tüm adaların bağlanabilmesi için hareket ettirmemiz gerekiyor. Tüm adaları birleştirmek için duba sayısının yeterli olduğunu garanti edebiliriz.

[Not]: Dubaları tekrar kullanamayız !!

Görev, tüm adaları birbirine bağlamak için hareketli pontonların minimum toplam mesafesine sahip çözümü bulmaktır. Bir duba hareket ettirme mesafesi, kütlenin orijinal konumu ile yerleştirilmiş konumu arasındaki mesafe olarak hesaplanabilir.

Açıkça söylemek gerekirse, böyle bir figür çizdim. Diyelim ki 3 A, B ve C adamız var. Gölün bir yerinde bulunuyorlar. Birkaç yelpaze şeklinde pantolon var. Şimdi çözüm, şeklin alt kısmında gösterilen A, B ve C'yi bağlamak için minimum hareket mesafesi toplamı bulmaktır. Umarım sorunu anlamaya yardımcı olur. :)

resim açıklamasını buraya girin

Sorun bir NPC sorunu gibi görünüyor, ama bunu kanıtlamayı bilmiyorum. bana bu konuda birileri yardımcı olabilir mi?


@vsaxena Hayır, nihai çözümün düz bir çizgi olduğunu düşünmüyorum. Çoğu durumda, düz bir çizgi iyi olacaktır, ancak dubalar yoğunlaştıkça, çözüm düz bir çizgi olmayabilir. Şekil sadece bir örnektir. :)

1
Steiner Ağacı'na çok yakın görünüyor. Metrik bir alanda, her ikisi üzerinde de çalışmayı çözmek için birçok teknik. en.wikipedia.org/wiki/…
Nicholas Mancuso

@NicholasMancuso köprüler düğüme düğümdür, bu nedenle köprünün birden fazla düğümü bağladığı klasik bir Steiner ağacı değildir. VLSI mizanpajında ​​benzer özelliklere sahip birçok sorun vardır.
VSOverFlow

1
@vsaxena: Sorun açıklanmadı. Bir eşkenar üçgende üç A, B, C adası olduğunu ve pontonların başlangıçta uçlardaki adalarla bağlantılı bir Y şekli oluşturduğunu varsayalım. Hiçbir şey geçerli bir çözüm değil mi, yoksa duba daha mı ileri götürülmeli? Bu çözüm geçerli değilse , pontonların geçerli bir yapılandırmasını tam olarak ne oluşturur?
JeffE

1
@vsaxena: Ve biz oradayken, adalar sadece noktalar mı, daireler mi, yoksa girdide daha karmaşık bir şekil mi belirtildi? Pontonlar çizgi parçaları mı, elipsler mi, yoksa başka bir şekil mi? Tüm adalar aynı boyutta ve şekilde mi, yoksa farklı olabilir mi? Tüm dubalar aynı boyutta ve şekilde mi, yoksa farklı olabilir mi?
JeffE

Yanıtlar:


1

Birincisi: Bu Gezgin Satıcı Sorunu değildir. TSP, minimum ağırlıktaki bir Hamiltonian döngüsünün tanımlanmasını gerektirir; bu döngü bir döngü, hatta hiç asgari bir ağırlık yolu gerektirmez. İnşaat maliyetinin pontonları hareket ettirmeye dayalı olduğu, bir dizi kenar kümesinin minimum maliyetli bir yapımını gerektirir .

İkincisi: Bu Minimum Ağırlık Yayılan Ağaç Sorunu değildir. Yukarıya bakın - minimum ağırlık tanımlaması değil , minimum maliyetli bir yapıya ihtiyacımız var .

Üçüncüsü: Görünen yol, genişleyen bir ağaç olacak, ancak mutlaka asgari bir ağırlık olmayacak. Alternatif, yayılan bir ağaç artı bir döngü ile sonuçlanan bazı ek kenarlar olmasıdır; ancak kenarları olmayan bir konfigürasyonla başlarsak, her kenarın bir miktar pozitif maliyeti vardır ve sadece ekstra kenarları inşa etmeyerek her zaman daha düşük ağırlıklı bir ağaç bulabiliriz.

Dördüncü: Dubaların serbestçe döndüğünü söylüyorsun; Bunun, pontonları döndürmekle ilgili hiçbir maliyetin olmadığı anlamına gelir. Ancak, dubaların ne hakkında döndüğünü belirtmezsiniz: Puanları? Kütle merkezleri? Herhangi bir iç nokta var mı? (Herhangi bir harici nokta varsa, sıfır ağırlık yapılarımız olurdu, değil mi?)

Bu biraz ince, çünkü eğer bir iç nokta hakkında 90 derece dönersek, örneğin kütle merkezi, maliyeti nedir? Hiçbir şey, çünkü bu bir rotasyon? Nokta hareket ettiği için sınırlı miktarda mı? Şimdi de dubaların büyüklüğünü bilmemiz gerekiyor.

Beşinci: Birisi hem pontonların hem de adaların Öklid Düzlemine gömülü olduğunu varsayar.


Cevabınız için teşekkürler. Döndürme kütle merkezi civarındadır ve dönüşle ilişkili hiçbir maliyet yoktur, sadece hareket maliyeti içerir. Evet, hem dubalar hem de adalar Öklid düzlemine gömülüdür. Gönderiyi açıklığa kavuşturmak için değiştireceğim.

Bunun aslında TSP olmadığını kabul etmiyorum. Bütün bu direk, terminolojide aksın etrafına sarılır, ancak konunun gerçeği, eğer bir kişi her bir duba ve her bir potansiyel uç duba pozisyonu arasına bir çizgi çizdiyse ve her çizginin mesafesini ağırlık olarak hesapladıysa, istisna hariç bitiş noktasının başlangıç ​​noktasına geri dönmesi durumunda, oluşan grafik TSP'ye neredeyse tam olarak (bir tee'ye) bakar. Bir duba veya bir son konum, grafikteki bir düğümdür ve ağırlıklar mesafelerden oluşur. Hamilton döngüsü SADECE başladığı yerde bittiği anlamına gelir.

2
Bu bir cevap değil, bir dizi yorum.
Raphael

1

Yeni diyagramlara baktıktan sonra, adalar arasında geçiş yapmak için birden fazla dubaya ihtiyacınız olabileceğini görüyorum. Bununla birlikte, düğümleri adalara dönüştürerek ve küçük yaylı yeterince farklı bir duba koleksiyonu oluşturarak Steiner Ağacı sorununun bir çözümüne çok yaklaşabilirsiniz . Wikipedia aslında Steiner ağacı problemi için bir PTAS olduğunu söylüyor, bu yüzden bunu NP-tamamladığını söyleyemem. Ancak Steiner ağacının ayrıntılarına bakmak size iyi bir yaklaşık çözüm sunabilir veya sorunun NP-Complete olduğunu gösterebilir.


Açıkladığınız, neredeyse optimal bir çözüme ulaşmak için yaklaşık bir algoritmadır. Ancak, çözümün optimal olduğunu nasıl doğrularsınız?

Asıl sorun, adalar arasında geçiş yapmak için birden fazla dubaya ihtiyacınız olduğu, bu da Steiner ağacına çok benzediğini düşünüyorum. Alt sınırdan (örneğin, bir kısıtlamayı ihmal ederek üretilen) bilinen bir optimal çözüme nasıl gidileceğini öğrenmek için Branch and Bound'a göz atın .
mcdowella

2
mcdowella Her duba sadece bir köprüde görülebildiği için bir Steiner ağacı değildir; noktadan noktaya bir sistemdir. Ayrıca maliyet fonksiyonu pontonların hareketi olduğu için, köprünün hala düz hat çözümünden daha düşük bir maliyete sahip geniş yaylarda oluştuğu bir durum olabilir ..
VSOverFlow

Bu muhtemelen başka bir açıdan yönlendirici olamaz. İhtiyaçlarımızı karşılamak için PUAN EKLEMİYORUZ.
trumpetlicks

1
Y kavşaklarına izin verilirse, bu en azından Steiner ağacı problemi kadar zordur, çünkü herhangi bir Steiner ağacı problemi bunlardan birine dönüştürülebilir - sadece çok sayıda ponton oluşturun ve bunları adalardan o kadar uzağa koyun nerede kullandığınız duba gerçekten önemli. Sonra bunu çözebilirseniz, Steiner ağacı problemini çözebilirsiniz: bu argüman için Steiner ağacı problemlerine neden olmayan bazı duba konfigürasyonlarının olması önemli değildir. Y kavşaklarına izin verilmiyorsa, kuralların tam olarak ne olduğunu bilmemiz gerekir. Yollar kavşakta kesişiyor mu?
mcdowella

0

Çizimden sonra, Bu hala bir NPC problemidir. Sorunu her bir dubaya indirsek bile, 1 n konumu (yani bilinen bağlantı çizgileri) alabilir. Her duba her pozisyonda test edilmesi gerekiyorsa, test edilmesi gereken n! kombinasyonları vardır.

Bu sorunun arkasındaki grafik fikirlerini göstermek için orijinal posterin resimlerini bazı eklemelerle düzenlemeyi seçtim.

Aşağıdaki görüntü, tüm olası duba bitiş yerleri KIRMIZI renkte olan tüm renkleri (daha basit hale getirmek için eksi 2) gösterir. Sadece 3 ponton ve tüm son konumlar arasındaki çizgileri çizdim, ancak bunun nasıl ÇILGIN alabileceğini görebiliyordum.

Sadece bunun için, turkuaz duba için en yakın son noktaya ilk adım olarak yerleştirilmesini tercih ettiğimizi söyleyin (TSP'den itibaren bunun sonunda optimal olmayabileceğini biliyoruz).

Aşağıda tam olarak görüyoruz, duba ve mesafe (aka ağırlıklı seyahat mesafesi) seyahat etmek zorunda kalacak.

resim açıklamasını buraya girin

Buradan, hemen yerleştirilmiş konumun yanında iki uç konuma sahip sanal bir düğüm yapılabilir. Ayarlanan düğümden ve sanal düğüm içindeki iki bitişik düğümün uzaklığı, 0 sanal hareket mesafesine sahiptir.

Aşağıda, buraya yerleştirilebilecek TÜM potansiyel seyahat mesafesi ağırlıklarıyla oluşturulan sanal düğümü görüyoruz.

resim açıklamasını buraya girin

Bunun nasıl devam edeceğini ve en uygun çözümün (TSP ile birçok kez görüldüğü gibi) her seçim için en kısa mesafeyi seçerek her zaman olmayacağını görünce, esas olarak tüm düğümler / sanal düğümler için tüm yolları test etmemiz gerekir.

Sonunda (TSP) sorununun ilk düğümü, potansiyel uç duba noktalarından herhangi biri olabilir ve bundan çizilen çizgiler, bu uç noktadan diğer tüm dubalara olan mesafelerdir. diğer tüm düğümler daha sonra sanal düğümler haline gelir, çünkü çizgileri kalan tüm dubalara mesafeler / ağırlıklar olarak ortaya çıkar ve bu böyle devam eder. Hamilton döngüsünün LAST JUMP şartı olmadan bu grafik probleminin TAMAMEN DEĞİLDİR. Kesin cevabı alabilmek için grafikteki tüm yolları test etmek gerekir.


1
Bunun belirtilen sorunun makul bir modeli olup olmadığını veya bunun aslında bir TSP modeli olup olmadığını bir kenara bırakarak, NP azaltımlarının çalışması bu değildir. Hedef sorununun bir NPC sorununun bir örneği olarak çerçevelenebileceğini göstermezsiniz. Bir NPC sorununun bir örneğinin hedef sorununuz olarak çerçevelenebileceğini göstermeniz gerekir.


2
Ah hayatım. Yorumumu ve sağladığım bağlantıyı okumak için rahatsız olsaydınız, referans verilen algoritmanın kesin olduğunu (bunu kanıtlarlar) öğrendiniz ve bu nedenle anlayışınızla çelişiyorsunuz. Fikrinizin P! = NP olduğunu önerdiğini unutmayın - bu hala açık bir soru. Yani hayır, bunu anlamadın, üzgünüm. (NP-tamamlama problemlerinin safça daha iyi çözülemeyeceği doğru olsa bile, kullandığınız mantık yanlış olur.)
Raphael

2
@trumpetlicks: Bir çelişki yok. Raphael'in ifade ettiği algoritma NP-sert tepe kapağını tam olarakÖ(1.3n)n

3
@JeffE: Başka bir deyişle, bu cevap sadece sorunun muhtemelen NP-tamamlanmış olduğunu kanıtlıyor .
Tsuyoshi Ito
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.