Bir NFA'nın başka bir NFA'nın alt kümesini kabul edip etmediği için etkili bir test var mı?


12

Yani, normal bir dil olmadığını test biliyoruz düzenli dil bir alt kümesidir Karar verilebilen biz DFAs, hesaplama için ikisini de dönüştürebilir çünkü bu dil boş ise o zaman testi ve.S R ˉ SRSRS¯

Bununla birlikte, bu DFA'lara dönüştürmeyi gerektirdiğinden, DFA'ların ve dolayısıyla test algoritmasının giriş NFA'larındaki durum sayısı açısından üstel olması mümkündür.

Bunu polinom zamanında yapmanın bilinen bir yolu var mı? Bu sorunun genel olarak Co-NP'nin tamamlandığı kanıtlandı mı?

tarafından kabul edilen ancak tarafından kabul edilmeyen bir kelime , bir polinom sertifikası olacağından sorunun Co-NP'de olduğuna dikkat edin .S R SRSRS

DÜZENLEME: Bu yanlıştır, çünkü böyle bir kelimenin devlet sayısında polinom olacağının garantisi yoktur.


1
Bu teorik bir soru mu yoksa pratikte mi? bazen uygulamada karşılaşılan girdilerin belirli bir "dağılımı" için, bir Pspace tam problemi P zamanında "çalıştırılabilir" olabilir.
vzn

İdeal olarak teoriktir, ancak üzerinde çalıştığım kanıtlar büyük ölçüde bilgisayar testleriyle yönlendiriliyor, bu da hızlı bir algoritmanın kesinlikle yararlı olacağı anlamına geliyor.
jmite

bu yüzden evet, iki makinenin her biri için geçişleri paralel olarak takip ederek ve sonuçtaki durum kümelerini takip ederek, std belirleme algoritması gibi çalışan oldukça düz bir algoritma var. bilmiyorum onun literatürde bir yerde, öyle olduğunu varsaymak o kadar basit. zaten algoritma kullanıyor musun? eğer alıntı yaparsanız yardımcı olur. ayrıca girdilerin türü hakkında daha fazla bilgi yardımcı olacaktır. aynı zamanda iki NFA'nın kesişiminin boş olup olmadığını belirlemek istediğiniz gibi geliyor mu? kavşağın dilini mi yoksa boş değilse Y / N'yi mi istiyorsunuz?
vzn

Ben sadece boş olup olmadığına bakıyorum, olup olmadığını test etmek için arıyorum . Paralel geçiş algoritması işe yarıyor, bence zor kısım bir NFA'nın iltifatını alıyor, önce DFA'ya dönüştürmeniz gerekiyor. Şu anda kullandığım algoritma sadece kaba kuvvettir, çünkü sadece sınırlı dillerle uğraşıyorum. R SRS={}RS
jmite

iki DFA'yı bir DFA 1'e dönüştürmeden, hatta bir tamamlayıcıyı bile bulmadan geçmenin bir yolu olabileceğine inanıyoruz. ama sığınak bir ref gördüm.
vzn

Yanıtlar:


15

NFA'larda dil denetimine karar verme sorunu - tamamlandı . Bunu kanıtlamak için, NFA'lar için evrensellik probleminden azaltmak kolaydır ( olup olmadığını test edin ) Yani, bir şekilde, belirlemeniz gerekir, ancak bunu anında yapabilirsiniz.L ( A ) = Σ PSPACEL(A)=Σ

Ortak NP hakkındaki gözleminiz yanlış (ama güzel). Bu tür bir tanık gerçekten de polinom zamanda kontrol edilebilir tanık , ancak en kısa tanık kendisi giriş uzunluğu üstel olabilir. Yana , o zaman dışı tutulmasını karar da -Komple.P S P A C EPSPACE=coPSPACEPSPACE

daha dikkatli bir şekilde ifade etmek için, nin boyutunda (yalnızca tamamlanması gerektiğinden) ve boyutunda olup olmadığına karar vermek .P S P A C E B B N L O G S P A C E AL(A)L(B)PSPACEBBNLOGSPACEA


Kesinlikle haklısın. Söylediklerimin geçerli olduğu belirli bir NFA sınıfı ile uğraşıyorum, ama kesinlikle genel sonsuz NFA'lar ile olmayabilir. Teşekkürler!
jmite

PSPACE'nin tamamlandığını kanıtlayan bir makaleye veya ders kitabına referansınız olmaz, değil mi?
jmite

1
Bu çok detaylı kanıt değil, ama yapacak düşünüyorum: wisdom.weizmann.ac.il/~vardi/av/notes/lec4.ps
Shaull


3

Çevrimiçi olarak mevcut en iyi, en gelişmiş ve son derece optimize edilmiş ücretsiz FSM kütüphanelerinden biri AT&T FSM kütüphanesidir . Tam olarak tanımladığınız gibi "fsmdifference" yi uygular ve farkı yapmak için belirli bir epsilon içermeyen FSM gerektirir. Bir fikir, farkı yapmadan önce FSM'lerden birini veya her ikisini de en aza indirmektir; (yani belirleme, küçültme ile aynı değildir.) Bu paket ayrıca, tam bir küçültmeden daha hızlı olacak şekilde tasarlanmış "yaklaşık" veya "açgözlü" bir küçültmeye de sahiptir.

Bununla birlikte, benzer problemleri inceleyerek, literatürde belirmeyen, belirleme adımından kaçınarak, yani ek olarak belirlenmiş bir FSM oluşturmadan bir NFA'yı tersine çevirerek, bu soruna yardımcı olabilecek FSM'lerin genelleştirilmesi veya oluşturulması olduğuna inanıyorum. Fikir, NFA kenarlarını "paralel" olarak hareket ettirmek ve standart belirleme algoritmasında olduğu gibi mevcut "süper durum" un (durum kümesi) bir parçası olan düğüm kümesini takip etmektir. Ardından, NFA tamamlayıcısı, yalnızca geçerli üst durum düğümleri kümesi "tümü kabul etmiyorsa" ("kabul eden" iff kabul eden belirleyici yapının aksine) kabul eder.

Ancak, bunu daha önce yazılmış görmedim ve hızlı bir çevrimiçi arama ile görmüyorum. Bir NFA'nın tamamlayıcısıyla çalışmanın tek yolunun onu belirlemek olduğunu gösteren veya ima eden birçok referans vardır.

İşte bazı fikirler için yararlı olabilecek iki "yakın" referans. Ben "daha yakın" olan herhangi bir / diğerleri duymak ilginizi çekecektir. Sorun üzerinde daha doğrudan araştırma yapan bir alan olabilecek program doğrulaması üzerinde çalıştığınızı belirtiyorsunuz.

[1] Z Notasyonu Nazir Ahmad Zafar, Nabeel Sabir ve Amir Ali ile Belirsiz Sonlu Otomataların Kesişimi İnşaatı

[2] Sonsuz Kelimeler Üzerinde Belirsiz Otomata Tamamlama Konstrüksiyonları Orna Kupferman ve Moshe Vardi

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.