Saya sedang meneliti bahasa pemrograman yang digunakan untuk pemrograman AI. Saya tahu bahwa LISP diajarkan sebagai bahasa pemrograman AI di universitas saya, tetapi Prolog jarang melakukannya. Saya agak suka Prolog, tapi saya bukan programmer AI jadi saya tidak berpikir saya memenuhi syarat untuk menilai sendiri mengapa Prolog lebih baik daripada LISP / Skema. Saya bertanya-tanya apakah Pemrogram memiliki masukan tentang topik ini.
Bagaimana Anda bisa berpendapat bahwa Prolog akan lebih berguna untuk pemrograman AI?
Saya telah merisetnya sedikit, dan argumen dasar yang sering saya lihat adalah bahwa sejak pemikiran disajikan dalam logika, dan Prolog adalah bahasa pemrograman yang logis, Prolog dapat membuat mesin keputusan dengan mudah, atau sesuatu untuk efek itu.
Apakah ada hal lain yang dapat dikatakan untuk Prolog di AI?
Jawaban:
Dari kata pengantar hingga Prolog Programming for Artificial Intelligence :
Pada dasarnya itu adalah bahasa yang bagus untuk mengekspresikan berbagai hubungan dan tujuan dengan cara yang ringkas, (kebanyakan-) dapat dibaca dan (semi-) alami. Kode Setara dalam, katakanlah, Lisps cenderung lebih bertele-tele dan lebih membingungkan dalam maksudnya karena Anda menghabiskan banyak waktu pada nyali dan saluran untuk mengelola dan bernalar tentang hubungan.
sumber
Saya mengambil pengantar kursus AI di undergrad saya yang menggunakan Prolog agar kami menerapkan sistem pakar.
Sistem pakar adalah perangkat lunak yang digunakan untuk memecahkan masalah yang sangat spesifik yang solusinya bergantung pada sejumlah besar aturan dan variabel.
Misalnya, Anda dapat membayangkan sistem pakar yang memberi tahu Anda apakah Anda harus membawa payung saat Anda pergi atau tidak; Anda akan memberikannya satu set data (apakah berawan, hujan turun sehari sebelumnya, musim apa, dll.) dan sistem pakar akan melalui aturan untuk memberi Anda jawaban (jika mendung dan hujan turun Sehari sebelumnya, maka Anda harus membawa payung).
Sifat Prolog membuatnya sangat mudah untuk mengimplementasikan aturan dan fakta (dalam Prolog, semuanya adalah aturan atau fakta), dan kemudian "query database" (dapatkan jawaban untuk pertanyaan Anda), bahkan ketika Anda memiliki ribuan aturan dan fakta ini .
Jika Anda tertarik dengan topik ini, saya sarankan Anda menginstal juru bahasa Prolog dan mencoba menerapkan sistem pakar yang sangat mendasar untuk merasakannya - mungkin membantu Anda memahami mengapa alat ini sangat ampuh untuk tugas-tugas ini.
sumber
Perbedaannya sedikit seperti menggunakan SQL untuk query database daripada menulis sebuah program, katakanlah, C. Dalam SQL, Anda mengatakan apa yang Anda inginkan - tetapi Anda tidak (secara langsung) harus menentukan algoritma yang digunakan untuk menurunkannya.
Program Prolog kadang-kadang disebut sebagai basis data, tetapi itu benar-benar seperangkat pernyataan logika predikat. Mekanisme evaluasi mengambil permintaan dan melakukan penggantian berdasarkan pernyataan logika predikat, melakukan pencarian untuk menemukan solusi yang benar. Semua algoritma pencarian yang dibutuhkan (lebih banyak terlibat daripada query SQL) dibangun ke dalam kompiler Prolog.
Query SQL, jika Anda menerapkan logika yang sama secara naif dalam C, tidak akan membutuhkan lebih banyak daripada perulangan dan jika / jika kondisional.
Kueri Prolog, diimplementasikan dalam C, akan membutuhkan (setidaknya) pencarian mundur menggunakan teknik menemukan-serikat. Dan itu, sekali lagi, adalah solusi naif.
Jenis pemrograman AI tertentu melibatkan banyak jenis pencarian yang dilakukan Prolog. Tidak mengherankan, sebenarnya - awalnya pemrograman AI dilakukan dalam Lisp atau bahasa lain, tetapi Prolog ditulis khusus untuk melakukan pekerjaan itu.
Logika predikat adalah pendekatan alami untuk mendefinisikan gaya masalah AI dan, dalam Prolog, setelah Anda memiliki definisi itu, Anda dapat menjalankannya secara langsung, tanpa harus menerapkan semua algoritma pencarian yang canggung itu.
sumber
Saya mengambil 2 modul Prolog di Universitas dan sangat menikmati pengembangan bahasa.
Sangat baik untuk sistem pakar, saya menulis diagnosis gejala medis.
Cara itu dijelaskan kepada saya adalah bahwa Lisp cenderung lebih banyak digunakan di negara-negara tertentu dan Prolog di negara-negara lain.
Dalam hal yang terbaik, saya hanya membahas singkat Lisp ketika saya melakukan kalkulus lambda dalam modul Theoretical Computer Science jadi saya bias terhadap Prolog.
Jika Anda mengembangkan aplikasi untuk berurusan dengan aturan dan fakta untuk mendapatkan jawaban, Prolog sangat bagus dan secara alami mendukung pengulangan.
sumber