Minimum düzenli ifadeyi bulmak NP tamamlanmış bir sorun mu?


41

Şu sorunu düşünüyorum: Belirli bir dizeyle (örneğin geçerli e-posta adresleri için) eşleşen ve başkalarıyla eşleşmeyen (geçersiz e-posta adresleri) normal bir ifade bulmak istiyorum.

Normal ifadeyle, iyi tanımlanmış bazı sonlu durum makinelerini kastettiğimizi varsayalım, kesin terminolojiye aşina değilim, ancak izin verilen ifadelerin bazı sınıfları üzerinde anlaşalım.

İfadeyi el ile oluşturmak yerine, bir dizi pozitif ve bir dizi negatif örnek vermek istiyorum.

Daha sonra + ile eşleşen, - ile reddeden ve iyi tanımlanmış bir anlamda minimal olan (otomatadaki durumların sayısı?) Bir ifade ile gelmelidir.

Benim sorularım:

  • Bu sorun düşünülmüş mü, daha somut bir şekilde nasıl tanımlanabilir ve etkili bir şekilde çözülebilir? Polinom sürede çözebilir miyiz? NP tamamlandı mı, bir şekilde tahmin edebilir miyiz? Hangi ifade sınıfları için işe yarar? Ders kitaplarına, makalelere ya da bu konuyu tartışan herhangi bir işaretçi için minnettar olurum.
  • Bu herhangi bir şekilde Kolmogorov karmaşıklığına bağlı mı?
  • Bu, herhangi bir şekilde öğrenmeyle ilişkili mi? Düzenli ifade, benim örnekleri ile tutarlıysa, minimal olması nedeniyle, henüz görülmeyen örnekler üzerindeki genelleme gücü hakkında bir şeyler söyleyebilir miyiz? Hangi asgarilik kriterleri bunun için daha uygun olurdu? Hangisi daha verimli olurdu? Bunun makine öğrenmesiyle bir bağlantısı var mı? Yine herhangi bir işaretçi yardımcı olacaktır ...

Dağınık soru için özür dilerim ... Bunu anlamak için beni doğru yöne çevirin. Teşekkürler !


2
Aşağıdaki sayfa, sorunun öğrenme yönüyle çok alakalı görünüyor: people.dsv.su.se/~henke/ML/MERLIN.html
Tsuyoshi Ito

1
… Ya da belki değil. Zaten DFA öğrenmeye dair birçok çalışma var gibi görünüyor.
Tsuyoshi Ito

2

Yanıtlar:


38

Evet, NP-Hard'tır. Pitt ve Warmuth , belirli bir örnekle tutarlı en küçük DFA bulmanın, olmadığı sürece, herhangi bir sabit için değerine yaklaştırılamadığını gösterdi .OPTkkP=NP

Öğrenme sorusu ile ilgili olarak: Kearns ve Valiant , RSA'yı bir DFA olarak kodlayabileceğinizi kanıtladı . Dolayısıyla, etiketli örnekler düzgün dağılımdan gelse bile, gelecekteki örneklere genelleme yapabilmek (hatta düzgün dağılımdan bile geliyor) RSA'yı kırar. Dolayısıyla, en kötü durumda, etiketli örneklere sahip olmanın bir DFA öğrenmeye (PAC modelinde) yardımcı olmadığını düşünüyoruz. Bu öğrenme için kullanılan klasik kriptografik sertlik sonuçlarından biridir.

Bu iki sorun da Occam'ın Razor Teoremi dediğimiz şey yüzünden iç içe geçmiş durumda . Temel olarak, aynı sınıftan bir hipotez ile etiketlenmiş bir örneklemle tutarlı olan belirli bir sınıftan en küçük hipotezi bulma prosedürümüz varsa, o zaman PAC'yi bu sınıfta öğrenebileceğimizi belirtir. Bu nedenle, RSA sertliği sonucu göz önüne alındığında, en küçük tutarlı DFA'yı bulmanın genel olarak zor olacağını umarız!

Olumlu bir öğrenme sonucunu eklemek için, Angluin gösterdi Kendi örneklerini telafi etmek alırsanız bir DFA öğrenebilir, ancak sorabildiklerini ek güç gerektirir "benim şimdiki hipotez doğru mu?" Bu aynı zamanda öğrenmede önemli bir makaleydi.

Diğer sorunuzu cevaplamak için, bu gerçekten de, tümüyle DFA'nın kanonik temsili düşük bir zorunluluk olduğunda öğrenme sorunu kolaylaştığından , Kolmogorov karmaşıklığı ile ilgilidir.


3
Beni daha yeni, daha güçlü bir sonuçla yendin! Daha sonra daha iyi bir cevap göndermelisiniz !!
Tsuyoshi Ito

Ayy üzgünüm! DFA'yı öğrenmek için buna atlamak zorunda olduğum zaman harcadım :)
Lev Reyzin

1
Durumda, önceki yorumumda şaka yapıyordum. Elbette daha iyi bir cevap gördüğüm için mutluyum!
Tsuyoshi Ito

1
Başka bir deyişle, bu sorun ile DFA'ların düzenli olarak en aza indirilmesi arasındaki temel fark, olumsuz örneklerin varlığıdır, evet?
Suresh Venkat

1
anlamadım Olumsuz örnekler olmadan, en küçük tutarlı dfa sadece 1 devlete sahiptir - kendine işaret eden kabul devleti ...
Lev Reyzin

13

Sorunun öğrenmeyle ilgili yönlerine cevap veriyorum.

Bu problem literatürde “DFA öğrenme” olarak adlandırılmaktadır.

Altın [Gol78] Karar vermek NP-tam olduğunu gösterdi verilen k ∈ℕ ve iki sonlu kümeler P ve N en fazla bir deterministik sonlu durum Otomaton (DFA) bulunup bulunmadığına dizeleri, k her dize içinde kabul devletler P ve dizeleri hiçbiri N . Makalede [PH01] bu motivasyonla ilgili problemler tartışılıyor (daha fazlası olabilir; bu, Google ile alakalı makaleler bulmaya çalıştığımda ortaya çıktı).

Referanslar

[Gol78] E Mark Altın. Verilen verilerden otomat tanımlamanın karmaşıklığı. Bilgi ve Kontrol , 37 (3): 302–320, Haziran 1978. http://dx.doi.org/10.1016/S0019-9958(78)90562-4

[PH01] Rajesh Parekh ve Vasant Honavar. DFA'nın basit örneklerden öğrenilmesi. Makine Öğrenmesi , 44 (1–2): 9–35, Temmuz 2001. http://www.springerlink.com/content/kr2501h2442l8mk1/ http://www.cs.iastate.edu/~honavar/Papers/parekh- dfa.pdf


Yanıtınız için teşekkürler, referanslara bakıyorum. Bu sitede birden fazla en iyi cevabı oylayabilir miyim? :) Yine, yıllarca makine öğrenimi görmeme rağmen, tüm "DFA öğrenme" alt alanını kaçırdığım için utanıyorum.
László Kozma

@ steve: Yalnızca bir cevabı kabul edebilirsiniz , ancak istediğiniz kadar cevabı oylayabilirsiniz .
Jukka Suomela

1
[Gold78] 'in ayrıca DFA'nın polinom zamanında öğrenilebileceğini (limitte tanımlamanın öğrenilebilirlik çerçevesi içinde) ifade ettiğini unutmayın. Genel bir bakış için Gramer Çıkarımı ( pagesperso.lina.univ-nantes.fr/~cdlh/book_webpage.html ) ile ilgili en son kitabına bakın .
mgalle,

@mgalle: Ek bilgi için teşekkür ederiz.
Tsuyoshi Ito,

7

Bu tartışma boyunca, asgari bir düzenli ifade bulmanın dili tanıyan bir asgari FSM bulmaya değeceği varsayılmıştır, ancak bunlar iki farklı şeydir. Doğru hatırlıyorsam polinom zamanında bir DFA en aza indirilirken, belirli bir dili temsil eden minimal bir düzenli ifade bulmak PSPACE'tir. Sonuncusu, Otomata Teorisi folkloruna ait olan, ancak kanıtı hiçbir yerde bulunamayan sonuçlardan biridir. Papadimitrou'nun kitabında bir egzersiz olarak belirtildiğini düşünüyorum.


Düzenli ifade uzunluğunun ve DFA'daki durum sayısının farklı nesnel işlevler olduğu doğrudur. DFA'nın azaltılması hakkında cevap verdim, çünkü daha iyi bir özelliğe sahip (örneğin, en az sayıda devlet ile benzersiz bir DFA var) ve sorunun belirtildiği gibi, tam olarak amaç fonksiyonunun esnek olduğu izlenimini edindim.
Tsuyoshi Ito,

Rastgele yorum: f (n) boyutunda düzenli bir ifadenin, O (f (n)) boyutunda bir NFA ile simüle edilebileceği gerçeği göz önüne alındığında, normal ifadeleri en aza indirmek, açıkça daha zor olan NFA'ları en aza indirmeye benzer.
Hsien-Chih Chang,


2

Ayrıca bu yığın taşma postasına bakınız. Aradığınız kitap Michael Sipser'in Hesap Kuramına Giriş gibi görünüyor .

Birkaç farklı soru soruyorsunuz, o zaman bir kerede bir tane alarak:

Is finding a minimal Finite State Machine for a language L NP-complete?

Hayır değil. Yığın Taşması, bir FSM'yi minimum boyutuna küçültmek için naif bir n ^ 2 algoritmasını tartışır. (Durma durumlarından geriye doğru çalışarak, "özdeş" durumları kesin bir şekilde birleştirin.)

Görünüşe göre (bağlantıyı takip etmedim), bunu yapmak için bir n log n algoritması var.

I have a training set of strings, how do I find the minimal FSM 
that separates the good examples from the bad?

Siz ifade ettiğiniz gibi, egzersiz setiniz sonlu bir dili açıklar . Sonlu diller, temel olarak bir FSM ile eşlenir - dilinizdeki her dize için durma durumunda biten doğrusal bir durum kümesi oluşturur, döngü gerekmez. Ardından, sonuçtaki makinede FSM simge durumuna küçültme algoritmasını çalıştırın.

Is this a good way to build a classifier?

Ben öyle demezdim. FSM'nin en aza indirilmesi, ayırt edici gücünü değiştirmiyor - işte bu bir nokta. En az FSM, tam olarak dize kümesini, en az olmayan FSM eşdeğeri olarak kabul eder.

Genel olarak, yeni verilerin sınıflandırılması için normal ifadeler uygun değildir. Herhangi bir sonlu eğitim seti için, yeni verilere genelleme imkanı olmayan, yalnızca o kümedeki pozitif örneklerle eşleşen bir RE / FSM alacaksınız. Bazı eğitim kurumlarına uyan sonsuz, düzenli bir dil bulmaya çalışan bir yaklaşım görmedim.

Makine öğrenmesi için, saf bir Bayes sınıflandırıcısı, karar ağacı, sinir ağı veya daha egzotik bir şey gibi bir şey arıyor olabilirsiniz. Russell ve Norvig'in Yapay Zekası: Modern Bir Yaklaşım , makine öğrenme tekniklerine genel bir bakış bulmak için (ve çok daha fazlası) olduğu kadar iyi bir yerdir.


2
Bu cevaba katılmıyorum. Tüm olumlu örnekleri basitçe alır ve yalnızca bu örnekleri kabul eden ve başka hiçbir şey kabul etmeyen bir FSM oluşturursanız, FSM'niz çok büyük olabilir. Öte yandan, tüm olumlu örnekleri kabul eden ve hiçbir olumsuz örnek kabul etmeyen en küçük FSM çok daha küçük olabilir .
Jukka Suomela

3
Bence asıl soru açıkça ortaya çıktı: "+ ifadeleriyle eşleşen, ifadeleri reddeden ve iyi tanımlanmış bir şekilde minimum olan bir ifade".
Jukka Suomela

5
@ cevabınızla benim cevabınız arasındaki ayrım oldukça belirsiz. dfa'nızı oluştururken, örnekteki her dize için yeni durumlar oluşturarak, kendinizi pozitif ve negatif örnekleri ayıran asgari dfa ile temsil edilenden farklı bir dile adamaya başladınız. Bu yüzden bir dfa oluşturmak ve daha sonra ne yazık ki en aza indirmek için algoritma yapmaz!
Lev Reyzin

1
Bu ayrımı anladığımdan emin değilim. Olumlu ve olumsuz örneklerimiz varsa, bu kısıtlamaları karşılayan bir dil ailesimiz var. her biri için bir (minimum) dfas kümesi var. Minimum boyutta bir DFA döndürdüğüm sürece, bu dillerden hangisini seçtiğimin önemi nedir.
Suresh Venkat

1
Öğrenmek için, en küçük genelleme yeteneğine sahip olduğundan en küçük DFA'yı seçmek istersiniz. @ kieth'in prosedürü, tüm bu diller üzerinde minimium DFA'yı seçmez, sadece kendi prosedürünü kullanmaya karar veren dil için en küçük olanıdır.
Lev Reyzin
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.