Bu köşe döngüsü kapak problemi için etkili bir algoritma var mı?


23

Bir bulmak için bir algoritma bulmaya çalışıyorum maksimum yönlendirilmiş grafiğinin tepe döngüsü kapağını , tüm köşe içerirler ayrık döngüleri kümesidir - G biz düşünmüyoruz (mümkün olduğunca çok sayıda döngüleri olarak sahip bireysel köşeler burada). Asgari tepe döngüsü çevrimi bulma probleminin yanı sıra, tam olarak k çevrimli tepe noktası çevrimi kapağı bulma işleminin NP-tamam olduğunu biliyorum . Peki ya maksimum dava?GGk

Genel olarak buna ilginç bir cevap bulsam da, bunu kullanmak istediğim grafikler aslında yapılarıyla oldukça kısıtlı, bu yüzden belki de sorun NP tamamlanmış olsa bile, bu özel durumlar için bir polinom çözümü olabilir.

Biz tamsayılar listesi var , elementler l i ve biz kullanacağız S , elementler s ı başvurmak için L bunu sıraladıktan sonra. Örnek olarak:LliSsiL

L=(1,3,2,5,0,7,4,2,6,0,8,1)S=(0,0,1,1,2,2,3,4,5,6,7,8)

Grafiğin köşe çifti ile tespit edilecektir bu şekilde L i = N ve s ın . Grafikte, eğer sadece s j = n ise ( n , i ) ( m , j ) yönlendirilmiş bir kenara sahiptir . (Bu grafikteki bir döngü, sıralama pozisyonlarında bitecek şekilde döngüsel olarak izin verilen bir değerler kümesine karşılık gelir.)(n,i)li=nsin(n,i)(m,j)sj=n

Yukarıdaki örnek, aşağıdaki grafiği verecektir (1 tabanlı endeksler kullanarak):

görüntü tanımını buraya girin

İşe yaramayan bir şey, en küçük çevrimi tekrar tekrar kaldırmanın açgözlü yaklaşımıdır (bu örnekte gösterildiği gibi).

Bu sorunun (herhangi bir hata yapmadıysam), verilen listeyi kaç tane takas yapmanız gerektiğini sormaya eşdeğer olduğunu unutmayın . (İlk önce bu soruna bakmaktan ilham alan şey buydu.)

Juho'nun cevabındaki bazı işaretçilerden ve edebiyattan biraz daha ayrılmasından sonra, çok yakından ilgili görünen atama problemiyle karşılaştım . Bununla birlikte, atama problemi ağırlıklı bir çift taraflı grafik olarak formüle edilmiştir ve şu ana kadar bu problemi azaltmak için kenarları ve ağırlıkları seçmenin bir yolunu bulamadım. Problemi burada bir ağırlık fonksiyonunu en aza indirgemek için formüle etmek isteseydik, sezgisel bir yaklaşım her döngünün ağırlığının nerede | C | döngüdeki kenarların (veya köşelerin) sayısıdır. (Tabii ki bu sadece ağırlığı - 1'e ayarlamakla eşdeğerdir.|C|1|C|1.) Yani ağırlık, içerdiği belirli kenarlara değil, döngünün boyutuna bağlıdır. Ama belki bu, birisine sorunu nasıl azaltacağı konusunda başka bir fikir verir.

Ayrıca döngülerin boyutunun sınırlandırılmasının APX problemini genel grafikler için zorlaştırdığı da anlaşılmaktadır . Bu, aynı şekilde, döngü sayısını maksimize etme görevi için veya burada ele alınan belirli grafikler için aynı olduğu anlamına gelmez, ancak bunun önemli olabileceği ile yakından ilgili gibi görünüyor.

Özetle: Yukarıdaki işlemden oluşturulan grafikler için maksimum tepe noktası ayrılma döngüsü kapağı bulunabilir mi?

İki taraf olarak, maksimum tepe ayrılma döngüsü kapağının aynı zamanda en az bir döngü kapağını kabul eden (muhtemelen ana soruya cevap olarak verilecek) keyfi grafikler için de etkili bir çözüme sahip olup olmadığıyla ilgileniyorum veya sadece maksimum kapaktaki döngü sayısının belirlenmesi (her birinde bulunan gerçek kenarların aksine) sorunu daha basit hale getirir. Eğer insanlar tam teşekküllü cevapları kendileri hak ettiklerini düşünüyorlarsa, bunları ayrı sorular olarak göndermekten memnuniyet duyarım.


Böbrek borsalarıyla ilgili CS literatürüne baktınız mı? Sorun ilişkili görünüyor, bu yüzden buradaki yöntemlerden herhangi birinin uygulanabilir olup olmadığını merak ediyorum. Bu bir çıkmaz olabilir, ancak ...
DW

@DW Yapmadım (bunun bir şey olduğunun farkında değildim). Ne bulabildiğimi göreceğim, teşekkürler.
Martin Ender

sorun gerçekten de teorik bir pov'dan incelenen böbrek borsalarına benziyor, örneğin Roughgarden'in bu makalesinde küçük döngülerin neredeyse açık nedenlerden dolayı tercih edildiği açıklanmaktadır (p3); döngü büyüklükleri "eşzamanlı işlemler" anlamına gelir ve daha küçük olanlar komplikasyon veya tüm beyinleri değiştirerek
fikir

@AustinMohr Tanımladığım yapıdan elde edilen grafiklerin her zaman döngülerde ayrıştırılabileceğine inanıyorum (ve ayrıca, hangi döngüyü çıkardığınızdan bağımsız olarak, kalanlar yine de bir döngülerde ayrıştırılabilir). Genel grafikleri de ele almak istiyorsanız, en az bir tam kapağın olduğunu varsayalım.
Martin Ender

@ MartinBüttner Özel durumunuzda, liste öğelerinin tümü farklıysa, probleminiz permütasyonun (benzersiz) döngü ayrışmasını bulmakla eşdeğer midir?
mhum

Yanıtlar:


4

Gkk=2k=3 kk

GG((3/5)ϵ)ϵ>0

Yukarıdaki istemlerin detayları ve ispatları için, bakınız [1].


[1] Bläser, Markus ve Bodo Manthey. "3 zamanlı kapaklar için iki yaklaşım algoritması." Kombinatoryal Optimizasyon İçin Yaklaşım Algoritmaları. Springer Berlin Heidelberg, 2002. 40-50.


İlginç, bu yazının referanslarını takip etmeye çalışacağım. Teşekkürler. (K-döngüsü kapaklarının tam olarak k döngüleri olduğunu düşündüğümde bir şeyi yanlış anlamış olmalıyım. Ya da başka bir yerde kullanılan farklı bir tanım olabilir.)
Martin Ender

2
@ MartinBüttner Bu arada, burada Bläser'in doktora tezine bir göz atmak istersiniz . (Almanca, ancak muhtemelen bu konuda hiçbir sorun yaşamayacaksınız :-)). 2-çevrimli bir maksimum kapağın hesaplanmasının detaylarını içermelidir.
Juho

|V|nn
Martin Ender

Bunu biraz daha düşünerek, sorunu ağırlık olarak formüle etmenin gerçekten mümkün olduğundan emin değilim. Eşit ağırlıklar ile tüm devir kapakları aynı ağırlığa sahiptir. Bir döngü için benim "maliyet" aslında uzunluğu eksi 1'dir. Bu yüzden mümkün olduğunca çok sayıda döngü istiyorum. Bu ağırlık olarak formüle edilebilirse, atama problemine indirgenir, ancak olmasa da aramaya devam etmem gerekiyor sanırım.
Martin Ender
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.