Bağlama duyarlı (Tip 1) dillerin önemi nedir?


34

Bu gören Chomsky Hiyerarşisi Tip 3 dilde harici bellek (örneğin, bir FA), bir bir durum makinesi tarafından Tip 2 ile bir durum makinesi tarafından kabul edilebilir bir yığın (yani, bir otomat aşağı açılan) tarafından 0 Tip İki istifli bir durum makinesi (veya Turing Makineleri için olduğu gibi eşit olarak bir bant), Tip 1 diller bu resme nasıl sığar? Ve bir dilin sadece Tip 0 değil, Tip 1 olduğunu belirlemede ne gibi avantajlar sağlar?


2
Cstheory.SE'de ( @Sunil tarafından önerildiği gibi) sorduğun ve sorduğun için, herkes için tanıdık bir terim olmayabilir, Tip 1'in kısa bir tanımını / tanımını eklemeni öneririm.
Janoma

5
@ Sunil Hayır, olmazdı. Bu, araştırma düzeyinde bir soru değildir (ve olmasa bile, yine de buradadır) çünkü araştırma düzeyinde soruları dışlamıyoruz - en azından alandaki tartışmanın sonucu olduğunu hatırladığım şey budur51).
sepp2k

3
@Janoma: Neden kolayca aranabilecek bilgiyi dahil etmesine yardım etmeli (bu ses olarak sayılmaz)?
bit maskesi

4
@Janoma Genel rehberin soruyu cevaplayabilecek birinin bilmeyebileceği kavramları açıklamak gerektiğini düşünüyorum (bu rehber sitenin bazı kullanıcılarının bilmeyebileceği her şeyi açıklarsa her şeyi açıklıyoruz her zaman ve bu kesinlikle diğer SE sitelerinde standart değil). Ve Chomsky hiyerarşisini bilmeyen birinin soruyu cevaplayabileceğini sanmıyorum. Elbette mümkün olduğu kadar açıklamaktan zarar gelmez (soruyu sıkıcı bir şekilde uzun yapmadığı sürece) - Sadece bu durumda gerekli olduğunu sanmıyorum.
sepp2k

4
Her bilgisayar bilimi uzmanı, Chomsky hiyerarşisini bilir (ya da bilmelidir). Diğer herkes 20'li yıllarda bakabilir. Belki Wikipedia'ya bir bağlantı burada yeterli olmalı.
Raphael

Yanıtlar:


19

Bağlam duyarlı diller, tam olarak doğrusal alan ve determinizm olmayan kullanarak bir Turing makinesi tarafından tanınabilen dillerdir. Böyle bir Turing makinesini üstel zaman kullanarak simüle edebilirsiniz, böylece üstel zamandaki herhangi bir dili tanıyabilirsiniz. Bağlam duyarlı dilleri tanıma sorununun complete olduğunu unutmayın; bu, üstel zamandan daha iyi yapamayacağınızdan eminiz.PSPbirCE

Bunu 0 dille karşılaştırdığınızda, bu en azından dili tanımanın ne kadar süreceği hakkında bir şeyler söyleyebileceğiniz anlamına gelir . Bir tür 0 dili bile karar verilemeyebilir: durdurulan tüm Turing makinelerinin dili, bir tür 0 dilidir, ancak bu dili tanıdığı için tam olarak durma problemidir;

Bağlam duyarlı dilbilgileri pratikte çok yararlı değildir. Bağlam serbest dilbilgisi ile çalışmalarına sezgisel, ama Vikipedi gösteri örnek olarak , bağlam duyarlı dilbilgisi çok çabuk oldukça dağınık hale gelir. Polinom alanını kullanan programlar çok daha kolay tasarlanır (ve eksiksizliği, algoritmanızın alan kullanımından yalnızca polinom olarak büyük olan bazı eşdeğer CSG'lerin varlığını garanti eder).PSPbirCE

Varlıklarının nedeni, bağlamsız gramerlerin çok doğal bir uzantısını oluşturmalarıdır (hangi yapımların geçerli olduğunu belirlemeye bağlamalısınız). Bu muhtemelen onları tanımlamak ve onları tip 1 dilleri olarak adlandırmak için Chomsky'ye ilham verecek. Bu tanımlamanın, bilgisayarlar bugün olduğu kadar hızlı hale gelmeden önce yapıldığını unutmayın: biçimsel dil teorisyenlerinin programcılara göre daha fazla ilgisi vardır.

Kısıtlanmamış dilbilgileri daha da garipleşiyor: artık bir zamansal olmayan 'genişletme' ve muhtemelen bağlama bağlı olarak onu bir prodüksiyonla değiştirme kavramı artık yok. Ayrıca bağlamı serbestçe değiştirmenize izin verilir. Bu, sınırsız gramerleri çalışmak için daha az sezgisel hale getirir: programlar eşdeğerdir ve çok daha sezgiseldir.


Ama içeriğe duyarlı diller şunlardır yararlı! Örneğin, bu tartışmaya bakınız .
Raphael

Bağlam duyarlılık faydalıdır, ancak dilleri tanımlamanın bir yolu olan bağlam duyarlı gramerler IMO için pek kullanışlı değildir. Bağlama duyarlı özellikleri tanımlamak için başka bazı yöntemler kullanarak daha iyi bir yol izliyorsunuz.
Alex ten Brink

Fakat cevabınızın çoğu bölümündeki diller hakkında konuşuyorsunuz. Dilbilgisi ile ilgili olarak, ymmw. CFG ve CSG arasında doğal modelleme uygulamalarına sahip dilbilgisi modelleri vardır, örneğin birleşik / çoklu CFG.
Raphael

1
Haklısın, diller ve gördüğüm dilbilgileri arasındaki ayrımdan dolayı özensizdim. Cevabımı güncelledim.
Alex ten Brink

10

Genel anlamda, genellikle belirli bir dil olan daha küçük sınıf bilmek istiyorum aittir. Bunun nedeni, daha küçük sınıfların arzu edilen daha basit mekanizmalar (otomatlar, gramerler, normal ifadeler vb.) Tarafından tanınması / kabul edilmesi / üretilmesidir.L

Örneğin, normal dillerin sınıfı iyi kapanma özelliklerine sahiptir ve bir DFA verildiğinde doğrusal bir zamanda bir kelimenin ait olduğunu test edebilirsiniz . Buna karşılık, bir Turing makinesi ile, sadece gerçekten işlemeye başlamadan önce olan çıkışı okumak için sadece lineer zamana ihtiyacınız vardır .birL(bir)

Kısacası, daha küçük sınıflar için bir kelimenin dile ait olup olmadığına karar verme problemini çözmek için daha az hesaplama gücüne ihtiyacınız vardır.

Wikipedia'ya göre Chomsky, doğal dillerin sözdizimini tanımlamak için içeriğe duyarlı gramerleri (yani Tip 1) tanımladı. Bu, doğal diller yerine matematikte kullanılan (örneğin aritmetik formüllerin sözdizimi) (örneğin İngilizce'deki doğru bir cümlenin sözdizimi) dizeleri ailelerini tanımlamak için tanıtılan diğer dil sınıflarından biraz farklıdır. .


2
“Kısacası, daha küçük sınıflar için bir kelimenin dile ait olup olmadığına karar verme problemini çözmek için daha az hesaplama gücüne ihtiyacınız var.” tam olarak, ancak Tip 1'e karşılık Tip 0'a nasıl uygulanır? Bu tam olarak soru!
bit maskesi

Eh, bir dilin yalnızca doğrusal alan kullanan bir TM tarafından tanınabileceğini biliyorsanız, bu size uygulama açısından avantaj sağlar (örneğin, ölçeklenebilirlik). Ayrıca, teorik özellikleri ispatlamakla ilgileniyorsanız , TM'nin uzayını kullanıp analiz etmesini sağlayacak şekilde sabitini alabilirsiniz . Bu genel bir TM için veya genel bir Tip 0 dili için mümkün değildir. ccn
Janoma

8

Bağlamsız dillerde, giriş ayrıştırmanın herhangi bir noktasında, otomat yığını ile tanımlanmış bir durumdadır. Her bir üretim, kullanıldığı yerden bağımsız olarak girdiyi tüketme konusunda aynı davranışa sahiptir.

Bu, her bir prodüksiyonun yığında daha derin olanların oluşturduğu dilin alt dilini oluşturması ve bu nedenle herhangi bir girdi için üretilen ve tüketilen her bir A ve B çifti için üç olası duruma sahip olduğumuz için ilginç özelliklere yol açmaktadır:

  • a: A tarafından tüketilen giriş tamamen B tarafından tüketilen girişde bulunur; veya
  • b: A tarafından tüketilen giriş tamamen B tarafından tüketilen girişi içerir; veya
  • c: A tarafından tüketilen giriş, B tarafından tüketilen girişden tamamen ayrılmıştır.

Bu, aşağıdakilerin asla gerçekleşmeyeceği anlamına gelir:

  • d: A tarafından tüketilen giriş, B tarafından tüketilen girişe kısmen çakışıyor.

Buna zıt olarak, içeriğe duyarlı dillerde, her bir üretimin davranışının kullanıldığı yere bağlı olduğundan, üretimde tüketilen girdi, yığında daha derin olanların alt dili değildir (aslında, yığın işe yaramaz). Ve d olabileceği ihtimaline sahibiz.

Gerçek dünyada, içeriğe duyarlı bir dilin anlamlı olacağı bir durum, <b> kalın metin </b>, <i> italik metin </i> ve <u> altı çizili metin </u> bu html etiketleri ve üst üste gelmelerine izin verin, "Bu <i> <i> karışık </u> örtüşen etiketler </i> içeren bir metindir." Bunu ayrıştırmak ve tüm başlangıç ​​etiketlerinin bitiş etiketleriyle eşleşip eşleşmediğini bulmak için, bir PDA bağlam içermez, ancak bir LBA kolayca yapacağı için yapmaz.


7

Kapama Özellikleri

Chomsky hiyerarşisindeki tüm dil sınıflarından sadece düzenli ve içeriğe duyarlı diller tamamlanma altında kapatılır . Dolayısıyla bu, içeriğe duyarlı dillerin benzersiz bir özelliğidir.

Bağlamsız dillerin aksine, CS de kesişme ve karışık ürün altında kapatılır .


6

Tip 1 olan herhangi bir dil, yalnızca doğrusal boşluk kullanan (doğrusal sınırlı otomatlar) bir Turing makinesi tarafından tanınabilir.


2
Evet, tanım bu. Peki bu kısıtlama bana nasıl yardımcı oluyor?
bit maskesi

3
bana yardım ediyor çünkü CSG'leri tanıyan algoritmaların gücünü EXP yerine E ile sınırlıyor. Size nasıl yardımcı olduğunu bilmiyorum :)
Suresh

5

Tip 1 diller, yalnızca giriş boyutuna doğrusal olan bandın bir kısmını kullanabilen deterministik olmayan Turing makineleri olan lineer sınırlı otomata göre karar verilebilir.


4

Chomsky hiyerarşisi, gramerleri dillerden daha fazla sınıflandırır. Bununla birlikte, bir otomatın Tip 2 ve 3 için önerdiğiniz gibi, Tip-1 gramerleri için bunu yapan bir tür Turing makinesi olsa bile, tanıması gereken bant sayısı ile ilgisi olacak şekilde tasarlanmamıştır.

Ayrıca, Tip-0 dilbilgisi dillerinin hepsinin bir Turing makinesi tarafından tanınmadığını, ancak sadece böyle bir makine tarafından numaralandırılabileceğini not etmelisiniz: Tip-0 özyinelemeli sayılabilir anlamına gelir ve Turing makineleri sadece özyinelemeli dilleri tanır.


4

Modern programlama dili her zaman içeriğe duyarlı özellikleri kullanır; Etkin bir şekilde karar verilebilecek bir alt kümeye düşerler.

Örnekler ad ve tür analizi ve tür çıkarımıdır.


3

Diğer birçokları Tip-1 dillerinin doğrusal sınırlı otomatlar tarafından tanınabilen diller olduğunu söylemiştir. Durma problemi, lineer sınırlı otomata karar veremez, bu da Torna Tezgahları tarafından tanınan diller için hesaplama açısından kararsız olan diğer birçok özelliğin Tip-1 dilleri için kararsız olduğu anlamına gelir.

Kuşkusuz, durma sorununun doğrusal sınırlı otomatlar için reddedilebilir olduğunun kanıtı, sınırlı miktarda bir bantla yalnızca sınırlı sayıda duruma girebildikleri gerçeğine dayanmaktadır; döngü ve hiç durmayacak. Bu ispat teknik olarak tüm gerçek bilgisayarlar için de geçerlidir (aynı zamanda sınırlı belleğe de sahiptir), ancak üzerinde çalışan programlar için durma problemini çözmede pratik bir faydası yoktur.

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.