Badam języki programowania używane do programowania AI. Wiem, że LISP jest nauczany jako język programowania AI na moim uniwersytecie, ale Prolog rzadko. Lubię trochę Prologa, ale nie jestem programistą sztucznej inteligencji, więc nie sądzę, żebym kwalifikował się do samodzielnego oceniania, dlaczego Prolog jest lepszy niż LISP / Scheme. Zastanawiałem się, czy programiści mieli jakieś uwagi na ten temat.
Jak można argumentować, że Prolog byłby bardziej przydatny do programowania AI?
Trochę go badam, a podstawowy argument, który wielokrotnie widziałem, jest taki, że skoro myśli są przedstawione w logice, a Prolog jest logicznym językiem programowania, Prolog może łatwo budować maszyny decyzyjne lub coś w tym rodzaju.
Czy jest coś jeszcze, co można powiedzieć o Prologu w AI?
Odpowiedzi:
Od przedmowy do programowania Prolog dla sztucznej inteligencji :
Zasadniczo jest to świetny język do wyrażania różnych relacji i celów w zwięzły, (głównie-) czytelny i (pół-) naturalny sposób. Kod ekwiwalentny, powiedzmy, w Lisps jest bardziej rozległy i bardziej zaciemniony w swojej intencji, ponieważ spędzasz dużo czasu na trzewiach i hydraulice zarządzania i rozumowania na temat związków.
źródło
Zapoznałem się ze wstępem do kursu sztucznej inteligencji na moim licencjacie, który wykorzystywał Prolog, abyśmy wdrożyli system ekspercki.
System ekspercki to oprogramowanie służące do rozwiązania bardzo specyficznego problemu, którego rozwiązanie zależy od dużej liczby reguł i zmiennych.
Na przykład możesz sobie wyobrazić system ekspercki, który mówi ci, czy powinieneś zabrać ze sobą parasolkę, gdy wychodzisz, czy nie; podasz mu zestaw danych (czy jest pochmurno, czy pada dzień wcześniej, jaka jest pora roku itp.), a system ekspercki przejdzie przez zasady, by dać ci odpowiedź (jeśli jest pochmurno i padał deszcz dzień wcześniej powinieneś wziąć parasol).
Charakter Prologu sprawia, że bardzo łatwo jest wdrożyć reguły i fakty (w Prologu wszystko jest regułą lub faktem), a następnie „przeszukać bazę danych” (uzyskać odpowiedź na swoje pytanie), nawet jeśli masz tysiące tych reguł i faktów .
Jeśli jesteś zainteresowany tym tematem, zalecam zainstalowanie interpretera Prologa i spróbowanie zaimplementować bardzo prosty system ekspercki, aby go wyczuć - może pomóc zrozumieć, dlaczego jest to tak potężne narzędzie do tych zadań.
źródło
Różnica jest trochę jak używanie SQL do zapytań do bazy danych, a nie pisanie programu, powiedzmy C. W SQL mówisz, co chcesz - ale nie musisz (bezpośrednio) określać algorytmu używanego do jego uzyskania.
Program Prolog jest czasem nazywany bazą danych, ale tak naprawdę jest to zbiór predykatów logicznych. Mechanizm oceny pobiera zapytanie i dokonuje na nim podstawień na podstawie instrukcji logiki predykatu, szukając właściwych rozwiązań. Wszystkie potrzebne algorytmy wyszukiwania (znacznie bardziej wymagające niż zapytanie SQL) są wbudowane w kompilator Prolog.
Zapytanie SQL, jeśli naiwnie zaimplementujesz tę samą logikę w C, nie wymagałoby niczego więcej niż zapętlanie i warunkowe if / else.
Zapytanie Prolog, zaimplementowane w C, wymagałoby (przynajmniej) wyszukiwania wstecznego przy użyciu techniki znajdowania związku. I to znowu jest naiwne rozwiązanie.
Pewien rodzaj programowania AI obejmuje wiele rodzajów wyszukiwania, które wykonuje Prolog. Nic dziwnego, naprawdę - pierwotnie programowanie AI odbywało się w Lisp lub innym języku, ale Prolog został napisany specjalnie do tego zadania.
Logika predykatów jest naturalnym podejściem do definiowania tego rodzaju problemu AI, a po jego zdefiniowaniu można uruchomić go bezpośrednio, bez konieczności implementowania wszystkich tych niezręcznych algorytmów wyszukiwania.
źródło
Wziąłem 2 moduły Prolog na uniwersytecie i bardzo lubiłem rozwijać się w tym języku.
Jest to szczególnie dobre dla systemów eksperckich, napisałem diagnozę symtomów medycznych.
Wyjaśniono mi, że Lisp jest częściej używany w niektórych krajach, a Prolog w innych.
Pod względem tego, co jest najlepsze, omawiałem Lisp tylko krótko, kiedy wykonałem rachunek lambda w module Teoretycznej Informatyki, więc jestem stronniczy w stosunku do Prologu.
Jeśli tworzysz aplikację do radzenia sobie z regułami i faktami w celu uzyskania odpowiedzi, Prolog jest bardzo dobry i naturalnie wspiera cofanie się.
źródło