Apakah ada peningkatan pada algoritma Dana Angluin untuk mempelajari perangkat reguler

33

Dalam makalah seminalinya tahun 1987, Dana Angluin menyajikan algoritma waktu polinomial untuk mempelajari DFA dari pertanyaan keanggotaan dan pertanyaan teori (contoh tandingan terhadap proposal DFA).

Dia menunjukkan bahwa jika Anda mencoba mempelajari DFA minimal dengan status, dan contoh balasan terbesar Anda adalah panjang , maka Anda perlu membuat kueri keanggotaan dan paling banyak teori-kueri.m O ( m n 2 ) n - 1nmO(mn2)n1

Apakah ada peningkatan signifikan pada jumlah pertanyaan yang diperlukan untuk mempelajari satu set reguler?


Referensi dan Pertanyaan Terkait

Artem Kaznatcheev
sumber
Semoga, @DominikFreydenberger mampir di beberapa titik di masa depan. Dia akan tahu.
Raphael
2
Saya curiga @LevReyzin akan tahu jawabannya juga ... dan itulah mengapa saya awalnya mempertimbangkan untuk bertanya pada cstheory, tapi saya kira saya harus membantu mengembangkan situs baru ini.
Artem Kaznatcheev
Bukan jawaban untuk pertanyaan itu, tetapi mungkin masih bisa membantu: [ citeulike.org/user/erelsegal-halevi/article/9275508 Kernel Universal untuk Mempelajari Bahasa Reguler]
Erel Segal-Halevi
terima kasih untuk tautannya @Erel, tapi saya tidak mengerti bagaimana hubungannya. Kernel universal Kontorovich tidak dapat dihitung secara efisien, dan model pembelajarannya tidak memiliki contoh tandingan.
Artem Kaznatcheev

Jawaban:

15

Dalam jawabannya di cstheory.SE, Lev Reyzin mengarahkan saya ke tesis Robert Schapire yang meningkatkan keterikatan dengan pertanyaan keanggotaan di bagian 5.4.5. Jumlah kueri counterexample tetap tidak berubah. Algoritma yang digunakan Schapire berbeda dalam apa yang dikerjakannya setelah kueri berulang kali.HAI(n2+nlogm)


Sketsa perbaikan

Pada level tertinggi, Schapire memaksa dari algoritma Angluin untuk memiliki kondisi ekstra yaitu untuk yang tertutup ( S , E , T ) dan masing-masing s 1 , s 2S jika s 1s 2 lalu r o w ( s 1 ) r o w ( s 2 ) . Ini menjamin bahwa | S |(S,E,T)(S,E,T)s1,s2Ss1s2rHaiw(s1)rHaiw(s2) dan juga membuatpropertikonsistensidari algoritma Angluin sepele untuk dipenuhi. Untuk memastikan hal ini, ia harus menangani hasil dari sebuah sampel tandingan secara berbeda.|S|n

Mengingat counterexample , Angluin hanya menambahkan z dan semua prefiks untuk S . Schapire melakukan sesuatu yang lebih halus oleh bukannya menambahkan satu elemen e untuk E . E baru ini akan membuat ( S , E , T ) menjadi tidak tertutup dalam pengertian Angluin dan pembaruan untuk mendapatkan penutupan dengan memperkenalkan setidaknya satu string baru ke S sambil menjaga semua baris berbeda. Kondisi pada e adalah:zzSeEe(S,E,T)Se

s,sS,SebuahΣstrHaiw(s)=rHaiw(sSebuah)danHai(δ(q0,se))Hai(δ(q0,sSebuahe))

Di mana adalah fungsi output, q 0 adalah status awal, dan δ aturan pembaruan dari DFA 'tidak dikenal' yang sebenarnya. Dengan kata lain, e harus berfungsi sebagai saksi untuk membedakan masa depan s dari s a .Haiq0δessSebuah

Untuk mengetahui ini dari z, kami melakukan pencarian biner untuk mencari substring r i sedemikian rupa sehingga z = p i r i dan 0 | p i | = i < | z | sedemikian rupa sehingga perilaku mesin dugaan kami berbeda berdasarkan pada satu karakter input. Secara lebih rinci, kita membiarkan s i menjadi string yang sesuai dengan keadaan yang dicapai dalam mesin dugaan kita dengan mengikuti p i . Kami menggunakan pencarian biner (ini adalah tempat log mezrsayaz=halsayarsaya0|halsaya|=saya<|z|ssayahalsayalogmberasal dari) untuk menemukan sedemikian sehingga o ( δ ( q 0 , s k r k ) ) o ( δ ( q 0 , s k + 1 r k + 1 ) . Dengan kata lain, r k + 1 membedakan dua menyatakan bahwa mesin menduga kami menemukan setara dan dengan demikian memenuhi kondisi pada e , jadi kami menambahkannya ke E .kHai(δ(q0,skrk))Hai(δ(q0,sk+1rk+1)rk+1eE

Artem Kaznatcheev
sumber
5

Saya tidak tahu apakah jawaban saya masih relevan. Baru-baru ini telah dijelaskan implementasi algoritma baru yang disebut Paket Pengamatan atau dalam beberapa keadaan Pohon Diskriminasi oleh Falk Howar. Algoritma ini seperti L * tetapi menggunakan Rivest-Shapire atau metode lain (lihat Steffen dan Isberner) untuk menangani dekomposisi counterexample; dan menggunakan struktur data, pohon diskriminasi (pohon biner) untuk membuat efisien "sift" yaitu penyisipan transisi-A (di mana A adalah setiap simbol alfabet) dari keadaan baru yang ditemukan hingga tidak ada penutupan. . Algoritma ini ada dalam dua versi: OneGlobally dan OneLocally sesuai dengan apakah sufiks yang ditemukan dalam dekomposisi ditambahkan ke masing-masing komponen atau tidak (rasio di balik algoritma adalah bahwa semua awalan dalam komponen setara dengan awalan pendek dan mewakili keadaan yang sama dalam target sesuai dengan akhiran yang ditemukan saat ini. Kemudian dengan counterexample baru akhiran baru ditemukan yang membedakan setidaknya 2 awalan dari komponen yang sama. Hal ini menyebabkan perpecahan komponen itu dalam dua komponen). Dengan OneLocally ada kueri keanggotaan yang jauh lebih sedikit tetapi jumlah kueri kesetaraan dapat meningkat secara drastis dengan DFA target besar. Sebaliknya OneGlobally memiliki jumlah kueri keanggotaan yang selalu lebih rendah dari L * (tetapi lebih besar dari OneLocally) dan jumlah kueri setara yang serupa dengan L * Kemudian dengan counterexample baru ditemukan suffix baru yang membedakan setidaknya 2 prefix dari komponen yang sama. Ini menyebabkan pemisahan komponen itu menjadi dua komponen). Dengan OneLocally ada kueri keanggotaan yang jauh lebih sedikit tetapi jumlah kueri kesetaraan dapat meningkat secara drastis dengan DFA target besar. Sebaliknya OneGlobally memiliki jumlah kueri keanggotaan yang selalu lebih rendah dari L * (tetapi lebih besar dari OneLocally) dan jumlah kueri setara yang serupa dengan L * Kemudian dengan counterexample baru ditemukan suffix baru yang membedakan setidaknya 2 prefix dari komponen yang sama. Ini menyebabkan pemisahan komponen itu menjadi dua komponen). Dengan OneLocally ada kueri keanggotaan yang jauh lebih sedikit tetapi jumlah kueri kesetaraan dapat meningkat secara drastis dengan DFA target besar. Sebaliknya OneGlobally memiliki jumlah kueri keanggotaan yang selalu lebih rendah dari L * (tetapi lebih besar dari OneLocally) dan jumlah kueri setara yang serupa dengan L *

Saya tahu ada juga algoritma lain: Algoritma TTT yang lebih baik dari Paket Observasi juga, tetapi saya tidak memiliki pengetahuan yang baik tentang itu. AlgoritmaTTT haruslah canggih

Umbert
sumber
Terima kasih atas jawaban ini! Apakah Anda memiliki referensi makalah untuk algoritma Howar dan untuk TTT?
Artem Kaznatcheev
Ini untuk tautan Observation Pack Howar dan ini untuk tautan algoritme TTT TTT Anda dapat menemukan implementasinya di LearLib (Paket Observasi disebut disana Pohon Diskriminasi)
Umbert