Aynı sağ ve sol ilişkisel ürüne sahip kelimeler


9

Hopcroft ve Ullman kitabını kullanarak deterministik olmayan otomata çalışmaya başladım . Çok ilginç bulduğum bir probleme takıldım:

Aşağıdaki tabloya göre çarpılarak soldan sağa sağdan sola değerlendirildiğinde aynı değere sahip tüm dizeleri kabul eden deterministik olmayan bir sonlu otomat verin:

×abcaaacbcabcbca

dizesine , soldan sağa ürün ve sağdan sola ürünabc
(a×b)×c=a×c=c
a×(b×c)=a×b=a

Bu nedenle , otomata için kabul edilebilir olmamalıdır. Bana göre, herhangi bir veya veya dizesinin kabul edilebilir bir dize olduğu açıktır (sağ ve sol değerlendirme aynı kısmi dizelerde çalışır). Soldan sağa değerlendirmeyi açıklayan bir NFA vermek kolaydır, ancak sorun şu ki, makine sağdan sola değerlendirmeyi hesaplamaya çalışırsa dizenin uzunluğunu bilmesi gerektiğini düşünüyorum (bu yüzden sonsuz bellek gereklidir).abcaabbcc

Peki deterministik olmayan bir otomata, soldan sağa değerlendirmeyle karşılaştırmak için sağdan sola nasıl değerlendirebilir?

Yanıtlar:


6

Buradaki ilk hile çarpım tablosunu bir otomatın geçiş tablosu olarak düşünmektir Aher durum çarpım tablonuzdaki bir harfi temsil eder, ancak henüz kabul konusunda endişelenmez. Yani tablonun solundaki ve gövdesindeki harfler aslında devletler - onları şöyle yazmak daha doğru olurduqa,qb,qc, ama yapmayacağım. Üstteki harfler girişlerdir.

Sonra otomayı oluşturun AT ("T") Devrik için için ters çarpma değiştirilmesi ileA:

ATabcaacbbaacccba

Yani A(abc) seni devlete götürür c, Ve aynı şekilde AT(cba) duruma geçiyor a nın-nin AT, not ettiğiniz gibi.

Ancak, ATsağdan sola gittiğinizi varsayarsak da yine de soldan sağa gitmek istiyoruz. Yani ikinci hile, otomasyonu tersine çevirmektir (sadece geri dönmeye başlamıştık çarpımı değil), tüm okları tersine çevirerek deterministik olmayan bir otomasyona yol açarATR Aşağıdaki geçiş tablosu tarafından verilen, tavukların çizilmesini sağlamak için birleştirilmiş harfler ile gösterilen alt kümeler, ac gerçek {a,c}. (umarım her şey yolunda gitti - işe yarıyor gibi görünüyor).

ATRabcaabbcbcaccabababbcacbccacabcacabcabbcabcabcabcabc

Bunu, yalnızca satırın üstündeki üç sıra ile deterministik olmayan bir otomat veya 8 satırın tümü ile belirlenmiş bir versiyon olarak yorumlayabilirsiniz.

Son olarak, sorunu çözmek için makine orijinalin çapraz ürün otomatıdır A ve ATR, yani A×ATR iki otomatın kesişme davranışını gerçekleştirmek için (ihtiyacımız yok AT daha fazla). A×ATR gibi çiftler var a,ac. Geçiş işlevi çalışırA ve ATRbağımsız. Tek bir başlangıç ​​durumu1,1 içeri girer a,a girdi altında a, içine b,b girdi altında b, vb.

Deterministik olmayan versiyonda kabul eden durumlar a,a Deterministik versiyonda, kabul eden durumlar ilk bileşenin olduğu çiftlerdir gibi ikinci bileşen setinin a,a veya b,bc.

A×ATR gösterildiği gibi artırılmış ve belirlenmiş 25=38+1ayrıntılı olarak yazmazsam affet beni. Ancak deterministik olmayan versiyon sadece10=33+1 devletler.


Teşekkürler, determinizmin arkasındaki fikri ve bir otomatanın "tersini" anlamak için cevabını bana gerçekten yardımcı oldu. Hopcroft kitabını kullanarak bu kavramları anlamakta sorun yaşıyordum, şu anda Sipser "Hesaplama Teorisine Giriş" kitabını gerçekten çok iyi kullanıyorum.
Bay Ariel

Girdiyi düşünün ba. 1,1 taşımak b,b girişten sonra bve sonra c, girdi altında a, yani bakabul edilmiyor, ama olmalı mı?
cemulate

8

() Eğer L normal bir dildir, LR, içindeki tüm kelimelerin tersini içeren dilL, ayrıca düzenli. Bunu bir egzersiz olarak kabul edin.

Bu, sorunu çözmemize nasıl yardımcı olur? İzin VermekLa,Lb,Lc değerlendiren tüm dizelerden oluşan diller a,b,csoldan sağa değerlendirirken. İlgilendiğiniz dil

(LaLaR)(LbLbR)(LcLcR).
Bu, nasıl kanıtlayacağınızı biliyorsanız (), söz konusu dil için bir NFA oluşturabilirsiniz.

Aslında, eğer ispat fikrini kullanırsanız(), o zaman muhtemelen devam edip otomasyonu oluşturabilirsiniz. Öyleyse bunu düşünelim. Özellikle, aşağıdakiler için bir NFA oluşturmaya çalışalım:LaRolarak değerlendirilen tüm dizelerin dili a sağdan sola değerlendirildiğinde.

Fikir bu. Gördüğünüz ilk harfinb. Sonra dizenin geri kalanıb (dan beri bx=a ima x=b). Benzer akıl, ilk harf olduğunda geçerlidirc. İlk harf olduğundaaancak, geri kalanı a veya bveya boş olabilir. Bir NFA ile tahmin edebiliriz (ve daha sonra tahminimizi doğrulayabiliriz).

Bu ipucu size düşünmek ve umarım sorunu çözmek için yeterli vermelidir.


Bunu formülle kanıtlamanın güzel bir yolu - bunun için oy verin. Alternatif "deterministik olmayan tahmin ve doğrula" fikrine gelince, bu genellikle bir kanıt için sorun değildir, ancak sorunun istediği gibi gerçekleştirilmesi oldukça zordur. Ben burada arka ucunda dize takip etmek gibi eksik ayrıntılar bir sürü olduğunu düşünüyorum.
David Lewis

@David, ayrıntılar bilerek eksik.
Yuval Filmus

@Yuval - bunun ödev olduğunu söylemedi - burada insanlara güveniyoruz, değil mi? Ben de bu varoluş kanıtı büyük olasılıkla gerekenden çok daha büyük, büyük bir makine ile sonuçlanacağını düşünüyorum.
David Lewis

@DavidLewis: Gilles, NFA'nın gerçekten çok büyük olmadığını gösteren daha eksiksiz bir cevap verdi; belirsizliği sizin için yapar. Bununla birlikte, karşılık gelen DFA çok büyük olabilir.
Raphael

@MohamedAbbas Belki kontrol etmeyi planlamıyorum.
Yuval Filmus

6

Şirin.

İlk olarak, ürünü soldan sağa hesaplayan bir otomat oluşturun. Kolay! Geçiş yapınxyz her ne zaman xy=z. Üç eyalet var{a,b,c}üç olası ürünü temsil eder. Dördüncü durumda başlayın1 ile 1xx hepsi için x. Son durumx yalnızca ve giriş kelimesinin soldan sağa çarpımı x.

Şimdi ürünü sağdan sola hesaplayan bir otomasyon oluşturalım. Bu belirleyici olmayacak. Bunu nasıl yaparız? Basit… Diğer yöne gitmek için her şeyi tersine çevirin : oklar ve ürünün yönü.

Daha önce nerede vardı xyxy, şimdi alıyoruz xyxy: kelimeyi soldan sağa kullandığımızda, bir üründen sağ taraftaki faktöre gideriz. Veya başka bir deyişle,xyyx.

Bağlantısı kesilmiş bir düğüm ekle 1boş kelime uğruna. Tüm düğümler başlangıçta.

Şimdi her iki yolu birlikte hesaplamamız gerekiyor, bu yüzden iki otomatın ürününü alıyoruz: (x1,x2)y(z1,z2) iFF x1yz1 ve x2yz2. Dört devlet olsun(1,x) ilk olun ve dört eyalet (x,x)nihai olmak. Bir kelimesi, ürünü soldan sağa doğru ve bu da sağdan sola doğru olduğunda belirleyici olmayan otomat tarafından tanınır.x.


Bunu kaçırmada biraz sorun yaşıyorum. Bunu doğrulamak zorunda değil misinxyyxsonlu durum kümesine yol açar? IAC, sadece "her şeyi tersine çevirmek" kadar basit değil, çünkü hala soldan sağa doğru tüketmek zorundasınız, ancak sağdan sola çarpın ve bunu yaptığınızdan emin değilim.
David Lewis

@DavidLewis Durum kümesi sonlu, ben tanımladım {overleftarrowa,b,b,1}. Çarpma sırasını tersine çevirdim (daha fazla yazım hatası).
Gilles 'SO- kötü olmayı kes'

5

Görünüşe göre asıl sorununuz belirsizliği kullanmıyor, bu yüzden biraz açıklayayım.

Diğerlerinin kullandığı temel fikir, belirsiz bir makinenin nihai sonucu tahmin edebileceğidir .

Küçük örneğinizi ele alalım abcve Gilles'in inşaat fikri. Sağdan sola doğru olan ürünün "hesaplanması" sonucu başlangıçta sonucu tahmin eder ve doğrular . Yani üç olasılık var:

  • Tahmin a: İlk sembol olduğu gibi a, rl ürünü bc olmuş olmalı a veya b.
    • Tahmin a: İkinci sembol olduğu gibi b, son sembol b.
      • (Tahmin b:) Bu c, bu yüzden kabul etme.
    • Tahmin b: İkinci sembol olduğu gibi b, son sembol c.
      • (Tahmin c:) Gerçekten de c, kabul ediyoruz.
  • Tahmin b: İlk sembol olduğu gibi a, bu mümkün değil, bu yüzden kabul etmeyin.
  • Tahmin c: İlk sembol olduğu gibi a, rl ürünü bc olmuş olmalı c
    • (Tahmin c:) İkinci sembol olduğu gibi b, son sembol a
      • (Tahmin a:) Bu c, bu yüzden kabul etme.

Gördüğünüz gibi, NFA olası tüm hesaplamaları aşağıdan tahmin edebilir ve kontrol edebilir . Kabul edilen dil, en az bir çalışma tarafından kabul edilen dizeler kümesi olarak tanımlandığından , girişteki kabul etmeyen tüm işlemler yok sayılır; NFA "her zaman doğru tahmin eder".

Artık bu NFA'nın sonuna kadar ilk seçimini hatırlaması kolay. Kabul ederse, hatırlanan sembolü paralel olarak elde edilen lr ürünüyle (deterministik olarak) karşılaştırabilir (dil kesişiminin NFA ile nasıl ilişkilendiği kesinlikle Ullman / Hopcroft ve diğer temel ders kitaplarında kapsanır).


Bir dizi tahmin etme fikri benim için garipti, ama Sipser kitabını okuyorum ve bence bu hesaplama teorisinde benim gibi yeni başlayanlar için daha iyi bir yaklaşım.
Bay Ariel

Tahmin etmeyi varsayılan girdilerle çatallama olarak düşünün. Ancak, tahmin stratejilerine dikkat etmelisiniz - tahmin için gerekli olan herhangi bir depolama alanının tüm çatallı dişler için eşit olarak sınırlandığından emin olun, aksi takdirde artık sonlu durumlu bir otomasyona sahip değilsiniz . Ayrıca, aktif çatal dişli konularının sayısına tek tip bir bağlı gerekir. Sanırım Raphael'in buradaki açıklaması işe yarıyor, ama en azından belirtilmesi gerekiyor.
David Lewis
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.