Özel durumlar için DFA kavşak algoritması


9

Özel durumlar için DFA kesişimi için verimli algoritmalar ile ilgileniyorum. Yani, kesişen DFA'lar belirli bir yapıya uyduklarında ve / veya sınırlı alfabe üzerinde çalıştıklarında. Bu tür durumlarda algoritmaları bulabileceğim bir kaynak var mı?

Soruyu fazla genişletmemek için, aşağıdaki yapı özellikle ilgi çekicidir: kesişen tüm DFA'lar ikili alfabede (0 | 1) çalışırlar, ayrıca umursamayan sembolleri de kullanabilirler. Dahası, sadece iki geçişi olan en fazla K özel durumu dışında tüm eyaletlerin sadece bir geçişi vardır (ve bu geçişler her zaman 0 veya 1'dir, ancak umursamayız). K pratik amaçlar için 10'dan küçük bir tamsayıdır. Ayrıca, tek bir kabul etme durumları vardır. Ek olarak, kesişimin HER ZAMAN "şerit" biçiminde bir DFA olduğu, yani aşağıdaki görüntüdeki gibi bir dal olmadığı bilinmektedir:

resim açıklamasını buraya girin

DÜZENLEME: Belki de giriş DFA'larındaki kısıtlamanın açıklaması çok açık değildir. Bu paragrafta onu geliştirmeye çalışacağım. Giriş T DFA'larınız var. Bu DFA'ların her biri yalnızca ikili alfabe ile çalışır. Her birinin en fazla N durumu vardır. Her DFA için durumlarının her biri aşağıdakilerden biridir:

1) kabul eden durum (sadece bir tanesidir ve bundan başka bir duruma geçiş yoktur)

2) aynı hedef duruma iki geçiş (0 ve 1) olan bir eyalet (eyaletlerin çoğunluğu bu türdendir)

3) farklı hedef durumlara (en fazla bu tür K ) iki geçiş (0 ve 1) olan bir durum

Her bir giriş DFA'sında yalnızca bir kabul durumunun ve (3) tipinde en fazla K durumunun olması garanti edilir . Ayrıca, daha az boyutta, (yukarıda tarif edildiği gibi) giriş DFAs kesişimi DFA bir "şerit" olduğu garanti edilir N .

EDIT2: Yorumlarda DW tarafından istendiği gibi bazı ek kısıtlamalar:

  • Giriş DFA'ları DAG'lardır.
  • Giriş DFA'ları, yorumlardaki DW tanımını izleyerek "düzlenir". Yani her duruma, her geçişin u tamsayısından v tamsayısına v olacak şekilde farklı tamsayılar atayabilirsiniz , böylece u + 1 = v .
  • Her bir DFA girişi için kabul edilebilir durum sayısı K'yı geçmez .

Herhangi bir fikir? Teşekkürler.


Tam olarak nasıl "umursamıyorsun"? Bir şekilde otomatayı belirsizleştiriyor gibi görünüyor.
Shaull

@Shaull Otomasyonu neden belirleyici yapmamalıdır? Bu, ancak aynı durumdan açıkça hariç tutulan başka bir geçiş olduğunda gerçekleşebilir.
babou

1
Nedir a DFA in form of "strip", i.e., no branches? Birinin sizin durumunuzdaki standart algoritmadan daha iyi yapabileceğine inanmak için özel bir nedeniniz var mı?
babou

1
Selam. Gerçek kavşağı hesaplamak harika olurdu, çünkü birçok şeyi basitleştirecektir, ancak boşluğa karar vermek de yararlı olacaktır.
ale64bit

1
sadece kavşak grafikleriyle ilgili yeni bir makaleyle karşılaştı , bu teorinin bir kısmı alakalı olabilir mi? Teorik Bilgisayar Bilimi Sohbeti yorumunuzda belirtilen uygulamanızı genişletebilir misiniz ? ve başkalarını orada daha fazla tartışmaya devam etmeye davet edin.
vzn

Yanıtlar:


9

Evet , P'nin içinde DFA boşluk bırakmayan sokma probleminin bazı vakaları vardır. Yüksek lisans tezim bu soruya ayrılmıştır, ancak ne yazık ki Fransızca'dır. Ancak, sonuçların çoğu göründüğü burada yer[2].

Alfabe tekli olduğunda, her bir DFA en fazla iki son duruma sahip olduğunda sorun L-tamamlandı ve aksi takdirde NP-tamamlandı. Diğer vakaların çoğu, otomatanın geçiş monoidleri üzerinde kısıtlamadır. Örneğin, abelyan grubu geçiş monoidleri için sorunNC3her bir DFA'nın en fazla bir son durumu olduğunda ve aksi takdirde NP-tamamlandığında; temel 2-grup geçiş monoidleri için problemHer bir DFA en fazla iki son duruma sahip olduğunda L-tamamlama, aksi takdirde NP-tamamlama.


Şimdi daha kesin sorunuza değinmeme izin verin. [1]. Üzerinde çalışan DFA'lar verildiğini varsayalım{0,1} ve ağaç şeklinde, yani bir devlet var u (başlangıç ​​durumu) her durum için v benzersiz bir yol var u için v. Sonra, kavşak boşluğuna karar vermek:

  1. Her bir DFA'da bir son durum için L-tamamlama,
  2. Her bir DFA'daki iki son durum için NL-complete ve
  3. Her bir DFA'daki üç veya daha fazla nihai durum için NP-tamamlama.

Sertlik sonuçları, sırasıyla 0, 1 veya 2 kez "çatalla" bile devam eder (bu sizin K). Şimdi DFA'larınız ağaç yerine asiklik grafiklere yöneliyorsa, sorun her DFA'da bir son durumla bile NP tamamlandı veK=2; azalma oldukça basittir ve Monoton 1-in-3 3-SAT'den alınmıştır.

Bu nedenle, hayır , probleminiz için etkili bir algoritma olduğunu sanmıyorum.

Şimdi, otomatik veri sayısı sabitse , yakın zamanda yayınlanan Michael Wehar ile görüşmek isteyebilirsiniz.[3].


EDIT: OP sorusunu düzenlediğinden, cevabımı yeni gereksinimleriyle açıklığa kavuşturayım. Negatif olarak 3-CNF'de bir formül verildiği ve her bir maddede tam olarak bir değişkeni doğru yapan bir ödev olup olmadığını belirlemeniz gereken NP tam problemi Monoton 1-in-3 3-SAT'yi düşünün . Bu sorunu boşluk olmayan kavşak problemine aşağıdaki şekilde azaltabilirsiniz. Örneğin, fıkra içinx2x3x5, aşağıdaki otomatı oluşturursunuz:

azaltma aygıtı

Otomataların ağaç (ve dolayısıyla DAG'lar) olduğunu, düzlendiğini ve üç son duruma sahip olduklarını unutmayın. Aslında, DAG'lardan memnunsa, üç nihai devlet tek bir devlete birleştirilebilir. Dahası, sadece iki devletin iki (ayrı) giden geçişi vardır.

  1. Michael Blondin. Karmaşık rafinee du problème d'intersection d'automates, M.Sc. tezi, Université de Montréal, 2012.
  2. Michael Blondin, Andreas Krebs ve Pierre McKenzie. Birkaç Son Duruma Sahip Kesişen Sonlu Otomata Karmaşıklığı, Hesaplamalı Karmaşıklık (CC), 2014.
  3. Michael Wehar. Kesişme Boşluğunun Sertlik Sonuçları. ICALP, 2014.

2
Çok teşekkürler! Cevabınızı kabul ediyorum. Soru, birçok DFA'nın çözümlerini bu özelliklerle kesişmek için birçok adımdan sonra her şeyin azaldığı bazı pratik testlerden kaynaklandı. Bununla birlikte, sonunda basit bir DFA elde edeceğimiz halde, ara DFA'lar (sıralı olarak kesişirken) nedeniyle sürecin hiç bitmediğini, çılgın bir şekilde üstel sayıda duruma dönüştüğünü gözlemledik. Böylece soru, aracı "naif" adımlardan geçmeden nasıl cevap almak için.
ale64bit

1
Çok teşekkürler (ve belirsiz olduğum için üzgünüm, bu alanda acemi altındayım). Şimdi alamadığım bir şey var. "Ağaç olarak şekillendirilmiş" ifadesinin "kökten diğer düğümlere benzersiz bir yol" anlamına geldiğinden bahsediyorsunuz. Ancak, örneğin, düzenlemede yayınladığınız resimde, bu bir ağaç olmaz (0/1 geçişlerini tek bir etiket olarak saymazsanız)?
ale64bit

1
Haklısın, ama benim anlayışım "umursamayan" geçişlere izin verdiğin oldu. Durum böyle değil mi?
Michael Blondin

2
Merhaba Michael. Güzel cevap için teşekkürler. Umarım her şey yolundadır. :)
Michael Wehar

2
@MichaelWehar Hem k hem de c'yi düzeltmeniz durumunda, sorunu "hızlı bir şekilde" çözebileceğinizden bahsedersiniz. Ama zaman karmaşıklığından bahsetmiyorsunuz, sadece uzay karmaşıklığından bahsediyorsunuz. Bu bağlamda "çabuk" tam olarak ne anlama geliyor?
ale64bit
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.