Je recherche des langages de programmation utilisés pour la programmation de l'IA. Je sais que LISP est enseigné en tant que langage de programmation de l'IA dans mon université, mais Prolog l'est rarement. J'aime un peu Prolog, mais je ne suis pas un programmeur d'IA, donc je ne pense pas que je suis qualifié pour juger par moi-même pourquoi Prolog est meilleur que LISP / Scheme. Je me demandais si les programmeurs avaient leur mot à dire sur ce sujet.
Comment pourriez-vous affirmer que Prolog serait plus utile pour la programmation de l'IA?
J'ai fait des recherches un peu, et l'argument de base que j'ai vu maintes et maintes fois est que, puisque les pensées sont présentées en logique, et Prolog est un langage de programmation logique, Prolog peut facilement construire des machines de décision, ou quelque chose dans ce sens.
Y a-t-il autre chose à dire pour Prolog en IA?
Réponses:
De la préface à la programmation Prolog pour l'intelligence artificielle :
Fondamentalement, c'est un excellent langage pour exprimer diverses relations et objectifs d'une manière succincte, (principalement-) lisible et (semi) naturelle. Le code équivalent dans, disons, le Lisps a tendance à être plus verbeux et plus obscur dans son intention parce que vous passez beaucoup de temps sur les tripes et la plomberie de la gestion et du raisonnement sur les relations.
la source
J'ai suivi un cours d'introduction à l'IA dans mon premier cycle qui a utilisé Prolog pour nous faire implémenter un système expert.
Un système expert est un logiciel utilisé pour résoudre un problème très spécifique dont la solution dépend d'un grand nombre de règles et de variables.
Par exemple, vous pourriez imaginer un système expert qui vous dirait si vous devez prendre un parapluie avec vous lorsque vous sortez ou non; vous lui fourniriez un ensemble de données (s'il est nuageux, s'il a plu la veille, de quelle saison il s'agit, etc.) et le système expert passerait par des règles pour vous donner une réponse (s'il est nuageux et qu'il a plu le veille, vous devez prendre un parapluie).
La nature de Prolog rend très simple la mise en œuvre de règles et de faits (dans Prolog, tout est une règle ou un fait), puis "interroge la base de données" (obtenez une réponse à votre question), même lorsque vous avez des milliers de ces règles et faits .
Si le sujet vous intéresse, je vous recommande d'installer un interpréteur Prolog et d'essayer d'implémenter un système expert très basique pour vous en faire une idée - cela pourrait vous aider à comprendre pourquoi c'est un outil si puissant pour ces tâches.
la source
La différence est un peu comme utiliser SQL pour des requêtes de base de données plutôt que d'écrire un programme en, disons, C. En SQL, vous dites ce que vous voulez - mais vous n'avez pas (directement) à spécifier l'algorithme utilisé pour le dériver.
Un programme Prolog est parfois appelé une base de données, mais il s'agit en réalité d'un ensemble d'instructions logiques de prédicat. Le mécanisme d'évaluation prend la requête et y effectue des substitutions en fonction des instructions logiques de prédicat, en effectuant une recherche pour trouver les solutions correctes. Tous les algorithmes de recherche nécessaires (beaucoup plus impliqués qu'une requête SQL) sont intégrés au compilateur Prolog.
Une requête SQL, si vous deviez implémenter la même logique naïvement en C, n'aurait pas besoin de beaucoup plus que des boucles et des conditions if / else.
Une requête Prolog, implémentée en C, aurait besoin (au moins) d'une recherche de retour en arrière en utilisant la technique de recherche d'union. Et cela, encore une fois, est une solution naïve.
Un certain type de programmation d'IA implique une grande partie du type de recherche que Prolog fait. Sans surprise, vraiment - à l'origine, la programmation de l'IA était faite en Lisp ou dans un autre langage, mais Prolog a été écrit spécifiquement pour faire le travail.
La logique des prédicats est l'approche naturelle pour définir ce style de problème d'IA et, dans Prolog, une fois que vous avez cette définition, vous pouvez l'exécuter directement, sans avoir à implémenter tous ces algorithmes de recherche maladroits.
la source
J'ai suivi 2 modules Prolog à l'Université et j'ai beaucoup aimé développer dans la langue.
Son particulièrement bon pour les systèmes experts, j'ai écrit un diagnostic médical symtom.
On m'a expliqué que Lisp a tendance à être davantage utilisé dans certains pays et Prolog dans d'autres.
Pour ce qui est du mieux, je n'ai couvert brièvement Lisp que lorsque j'ai fait du lambda calcul dans un module d'informatique théorique, donc je suis partisan de Prolog.
Si vous développez une application pour gérer les règles et les faits afin d'obtenir des réponses, Prolog est très bon et prend naturellement en charge le retour en arrière.
la source