Apakah menemukan ekspresi reguler minimum merupakan masalah NP-complete?

43

Saya memikirkan masalah berikut: Saya ingin menemukan ekspresi reguler yang cocok dengan serangkaian string tertentu (misalnya, alamat email yang valid) dan tidak cocok dengan yang lain (alamat email yang tidak valid).

Misalkan dengan ekspresi reguler yang kami maksud adalah mesin negara terbatas yang terdefinisi dengan baik, saya tidak akrab dengan terminologi yang tepat, tetapi mari kita sepakat pada beberapa kelas ekspresi yang diizinkan.

Alih-alih secara manual membuat ekspresi, saya ingin memberikannya satu set positif dan satu set contoh negatif.

Maka harus muncul dengan ekspresi yang cocok dengan +, menolak - dan minimal dalam beberapa hal yang didefinisikan dengan baik (jumlah negara dalam automata?).

Pertanyaan saya adalah:

  • Sudahkah masalah ini dipertimbangkan, bagaimana ia dapat didefinisikan dengan cara yang lebih konkret dan dapat diselesaikan dengan efisien? Bisakah kita menyelesaikannya dalam waktu polinomial? Apakah NP lengkap, bisakah kita memperkirakannya entah bagaimana? Untuk kelas ekspresi apa itu bekerja? Saya akan sangat menghargai setiap pointer ke buku teks, artikel atau semacamnya yang membahas topik ini.
  • Apakah ini terkait dengan kompleksitas Kolmogorov?
  • Apakah ini terkait dengan cara belajar apa pun? Jika ekspresi reguler konsisten dengan contoh saya, berdasarkan minimal, dapatkah kita mengatakan sesuatu tentang kekuatan generalisasi pada contoh yang belum terlihat? Kriteria minimalitas apa yang lebih cocok untuk ini? Yang mana yang lebih efisien? Apakah ini ada hubungannya dengan pembelajaran mesin? Sekali lagi petunjuk apa pun akan sangat membantu ...

Maaf untuk pertanyaan berantakan ... Arahkan saya ke arah yang benar untuk mencari tahu. Terima kasih!

László Kozma
sumber
2
Halaman berikut ini tampaknya sangat relevan dengan aspek pembelajaran dari pertanyaan: people.dsv.su.se/ ~henke
Tsuyoshi Ito
1
… atau mungkin tidak. Sepertinya ada banyak pekerjaan pada pembelajaran DFA.
Tsuyoshi Ito
2
Pertanyaan ini baru saja dibahas di blog komunitas .
Aaron Sterling

Jawaban:

39

Ya, ini NP-Hard. Pitt dan Warmuth menunjukkan bahwa menemukan DFA terkecil yang konsisten dengan sampel yang diberikan tidak dapat diperkirakan dalam untuk konstanta apa pun , kecuali .OPTkkP=NP

Mengenai pertanyaan pembelajaran: Kearns dan Valiant membuktikan bahwa Anda dapat menyandikan RSA menjadi DFA. Jadi, bahkan jika contoh berlabel berasal dari distribusi seragam, dapat digeneralisasi ke contoh di masa depan (juga bahkan berasal dari distribusi seragam) akan merusak RSA. Oleh karena itu, kami berpikir bahwa dalam kasus terburuk, memiliki contoh berlabel tidak membantu mempelajari DFA (dalam model PAC). Ini adalah salah satu hasil kekerasan kriptografi klasik untuk pembelajaran.

Kedua masalah ini saling terkait karena apa yang kita sebut Teorema Cukur Occam . Ini pada dasarnya menyatakan bahwa jika kita memiliki prosedur untuk menemukan hipotesis terkecil dari kelas yang diberikan yang konsisten dengan sampel yang dilabeli oleh hipotesis dari kelas yang sama, maka kita dapat PAC belajar kelas itu. Jadi, mengingat hasil kekerasan RSA, kami berharap bahwa menemukan DFA konsisten terkecil akan sulit secara umum!

Untuk menambahkan hasil belajar yang positif, Angluin menunjukkan bahwa Anda dapat mempelajari DFA jika Anda bisa membuat contoh sendiri, tetapi membutuhkan kekuatan tambahan untuk dapat bertanya, "Apakah hipotesis saya saat ini benar?" Ini juga merupakan makalah mani dalam pembelajaran.

Untuk menjawab pertanyaan Anda yang lain, ini semua memang terkait dengan kompleksitas Kolmogorov, karena masalah pembelajaran menjadi lebih mudah ketika representasi kanonik dari target DFA memiliki kompleksitas yang rendah.

Lev Reyzin
sumber
3
Anda mengalahkan saya dengan hasil yang lebih baru, lebih kuat! Anda harus mengirim jawaban yang lebih baik nanti !! 1 !!
Tsuyoshi Ito
oops maaf! Saya menghabiskan cukup banyak waktu untuk mempelajari DFA yang harus saya lompati :)
Lev Reyzin
1
Untuk jaga-jaga, saya bercanda dalam komentar saya sebelumnya. Tentu saja saya senang melihat jawaban yang lebih baik!
Tsuyoshi Ito
1
jadi dengan kata lain, perbedaan utama antara masalah ini dan minimalisasi DFA adalah adanya contoh negatif, ya?
Suresh Venkat
1
Saya tidak mengerti. tanpa contoh negatif, dfa konsisten terkecil hanya memiliki 1 keadaan - keadaan terima yang menunjuk ke dirinya sendiri ...
Lev Reyzin
13

Saya menjawab aspek terkait pembelajaran dari pertanyaan itu.

Masalah ini tampaknya disebut "pembelajaran DFA" dalam literatur.

Emas [Gol78] menunjukkan bahwa NP-complete untuk memutuskan, mengingat k ∈ℕ dan dua set terbatas P dan N string, apakah ada deterministic finite-state automaton (DFA) dengan paling banyak k state yang menerima setiap string dalam P dan tidak ada string dalam N . Makalah [PH01] tampaknya membahas masalah yang berkaitan dengan motivasi ini (mungkin ada lebih banyak; ini baru muncul ketika saya mencoba menemukan makalah yang relevan dengan Google).

Referensi

[Gol78] E Mark Gold. Kompleksitas identifikasi otomat dari data yang diberikan. Informasi dan Kontrol , 37 (3): 302–320, Juni 1978. http://dx.doi.org/10.1016/S0019-9958(78)90562-4

[PH01] Rajesh Parekh dan Vasant Honavar. Belajar DFA dari contoh sederhana. Machine Learning , 44 (1–2): 9–35, Juli 2001. http://www.springerlink.com/content/kr2501h2442l8mk1/ http://www.cs.iastate.edu/ ~ honavar/Papers/parekh- dfa.pdf

Tsuyoshi Ito
sumber
1
Terima kasih atas tanggapannya, saya melihat referensi. Bisakah saya memilih lebih dari satu jawaban terbaik di situs ini? :) Sekali lagi, saya malu bahwa saya melewatkan seluruh subbidang "belajar DFA", meskipun saya belajar pembelajaran mesin selama bertahun-tahun.
László Kozma
@steve: Anda hanya dapat menerima satu jawaban, tetapi Anda dapat memilih sebanyak mungkin jawaban.
Jukka Suomela
2
Perhatikan bahwa [Gold78] juga menyatakan bahwa DFA dapat dipelajari dalam waktu polinomial (di dalam kerangka kerja keterjangkauan identifikasi dalam batas). Lihat juga buku terbaru tentang Grammatical Inference ( pagesperso.lina.univ-nantes.fr/~cdlh/book_webpage.html ) untuk tinjauan umum.
mgalle
@mgalle: Terima kasih atas informasi tambahannya.
Tsuyoshi Ito
8

Sepanjang diskusi ini, telah diasumsikan bahwa menemukan ekspresi reguler minimal sama dengan menemukan FSM minimal mengenali bahasa, tetapi ini adalah dua hal yang berbeda. Jika saya ingat dengan benar, DFA dapat diminimalkan dalam waktu polinomial, sedangkan menemukan ekspresi reguler minimal yang mewakili bahasa reguler yang diberikan adalah PSPACE-hard. Yang terakhir adalah salah satu hasil yang berasal dari cerita rakyat Teori Automata, tetapi bukti tidak dapat ditemukan di mana pun. Saya pikir itu dinyatakan sebagai latihan dalam buku Papadimitrou.


sumber
1
Benar bahwa panjang ekspresi reguler dan jumlah status dalam DFA adalah fungsi objektif yang berbeda. Saya menjawab tentang minimasi DFA karena memiliki properti yang lebih bagus (misalnya, ada DFA unik dengan jumlah minimum negara) dan dari cara pertanyaan itu dinyatakan saya mendapat kesan bahwa fungsi tujuan yang tepat fleksibel.
Tsuyoshi Ito
Komentar acak: mengingat fakta bahwa ekspresi reguler ukuran f (n) dapat disimulasikan oleh NFA ukuran O (f (n)), meminimalkan ekspresi reguler lebih seperti meminimalkan NFA, yang jelas lebih sulit.
Hsien-Chih Chang 張顯 之
beberapa di antaranya dibahas dalam komentar pada jawaban @ keith
Lev Reyzin
2

Lihat juga posting stack overflow ini. Buku yang Anda cari tampaknya adalah Pengantar Teori Komputasi oleh Michael Sipser.

Anda mengajukan beberapa pertanyaan berbeda, jadi ajukan satu per satu:

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

Bukan itu. Posting Stack Overflow membahas algoritma naif n ^ 2 untuk mengurangi FSM ke ukuran minimalnya. (Bekerja mundur dari keadaan berhenti, gabungkan keadaan yang "identik" dalam arti yang tepat.)

Ternyata (saya tidak mengikuti tautan), ada algoritma n log n untuk melakukan ini.

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

Saat Anda mengucapkannya, set pelatihan Anda menjelaskan bahasa yang terbatas . Bahasa yang terbatas memetakan secara trivial ke FSM - buat serangkaian negara linear yang berakhir dengan status berhenti untuk setiap string dalam bahasa Anda, tidak diperlukan perulangan. Kemudian, jalankan algoritma minimalisasi FSM pada mesin yang dihasilkan.

Is this a good way to build a classifier?

Saya tidak akan mengatakannya. Meminimalkan FSM tidak mengubah kekuatan diskriminatifnya - itulah intinya. FSM minimal menerima set string persis seperti FSM non-minimal yang setara.

Secara umum, ekspresi reguler tidak cocok untuk mengklasifikasikan data novel. Untuk setiap set pelatihan terbatas, Anda akan mendapatkan RE / FSM yang hanya cocok dengan contoh-contoh positif dalam set itu, tanpa kemampuan untuk menggeneralisasi ke data baru. Saya belum pernah melihat pendekatan yang mencoba menemukan bahasa reguler tak terbatas yang cocok dengan beberapa corpus pelatihan.

Untuk pembelajaran mesin, Anda akan mencari sesuatu seperti classifier Bayes yang naif, pohon keputusan, jaringan saraf, atau sesuatu yang lebih eksotis. Inteligensi Buatan Russell dan Norvig : Suatu Pendekatan Modern adalah tempat yang baik untuk menemukan gambaran teknik pembelajaran mesin (dan banyak lagi, lebih banyak lagi.)

Komunitas
sumber
2
Saya tidak setuju dengan jawaban ini. Jika Anda hanya mengambil semua contoh positif dan membuat FSM yang hanya menerima contoh-contoh itu dan tidak ada yang lain, FSM Anda mungkin besar. Di sisi lain, FSM terkecil yang menerima semua contoh positif dan tidak ada contoh negatif mungkin jauh lebih kecil.
Jukka Suomela
3
Saya pikir pertanyaan aslinya membuatnya cukup jelas: "ekspresi yang cocok dengan +, menolak - dan minimal dalam beberapa arti yang didefinisikan dengan baik".
Jukka Suomela
5
@ dengan perbedaan antara jawaban Anda dan saya cukup halus. ketika Anda membangun dfa, dengan membuat status baru untuk setiap string dalam sampel, Anda berkomitmen pada bahasa yang mungkin berbeda dari yang diwakili oleh dfa minimum yang memisahkan contoh positif dan negatif. jadi algoritma untuk menghasilkan dfa dan kemudian meminimalkannya sayangnya tidak melakukannya!
Lev Reyzin
1
Saya tidak yakin saya mengerti perbedaan ini. Jika kita memiliki serangkaian contoh positif dan negatif, kita memiliki serangkaian bahasa yang semuanya memenuhi batasan ini. untuk masing-masing ada (set) dfas minimal. Selama saya mengembalikan DFA dengan ukuran minimum, bagaimana bedanya bahasa mana yang saya pilih.
Suresh Venkat
1
Untuk belajar, Anda ingin memilih DFA terkecil karena memiliki kemampuan generalisasi terbaik. Prosedur @ kieth tidak akan memilih minimium DFA dari semua bahasa ini, hanya yang terkecil untuk bahasa yang berkomitmen menggunakan prosedurnya.
Lev Reyzin