GOLOG - GOLOG

GOLOG
Paradigme programmation logique
Première apparition 1994 ; il y a 27 ans ( 1994 )
Extensions de nom de fichier .pl
Les principales mises en œuvre
golog.lua, IndiGolog
Influencé par
Prologue

GOLOG est un langage de programmation logique de haut niveau pour la spécification et l'exécution d'actions complexes dans des domaines dynamiques. Il est basé sur le calcul de situation . C'est un langage logique de premier ordre pour raisonner sur l'action et le changement. GOLOG a été développé à l' Université de Toronto .

Histoire

Le concept de calcul de situation sur lequel le langage de programmation GOLOG est basé a été proposé pour la première fois par John McCarthy en 1963.

Langue

Un interpréteur GOLOG maintient automatiquement une caractérisation directe du monde dynamique en cours de modélisation, sur la base d'axiomes fournis par l'utilisateur sur les conditions préalables, les effets des actions et l'état initial du monde. Cela permet à l'application de raisonner sur l'état du monde et de considérer les impacts de différentes actions potentielles avant de se concentrer sur une action spécifique.

Golog est un langage de programmation logique et est très différent des langages de programmation conventionnels. Un langage de programmation procédural comme C définit l'exécution des instructions à l'avance. Le programmeur crée un sous-programme composé d'instructions et l'ordinateur exécute chaque instruction dans un ordre linéaire. En revanche, les langages de programmation de cinquième génération comme Golog fonctionnent avec un modèle abstrait avec lequel l'interpréteur peut générer la séquence d'actions. Le code source définit le problème et c'est au solveur de trouver l'action suivante. Cette approche peut faciliter la gestion de problèmes complexes du domaine de la robotique.

Un programme Golog définit l' espace d'état dans lequel l'agent est autorisé à opérer. Un chemin dans le domaine symbolique est trouvé avec la recherche dans l'espace d'état . Pour accélérer le processus, les programmes Golog sont réalisés sous forme de réseaux de tâches hiérarchiques .

Outre le langage d'origine Golog, certaines extensions sont disponibles. Le langage ConGolog fournit la simultanéité et les interruptions. D'autres dialectes comme IndiGolog et Readylog ont été créés pour des applications en temps réel dans lesquelles les lectures des capteurs sont mises à jour à la volée.

Les usages

Golog a été utilisé pour modéliser le comportement d'agents autonomes. En plus d'un formalisme d'action basé sur la logique pour décrire l'environnement et les effets des actions de base, ils permettent la construction d'actions complexes en utilisant des constructions de langage de programmation typiques.

Il est également utilisé pour des applications de contrôle de haut niveau de robots et de processus industriels , d'agents virtuels, de simulation d'événements discrets, etc. Il peut également être utilisé pour développer des systèmes d'agents de type BDI (Belief Desire Intention).

Planification et scénarisation

Contrairement au langage de définition de domaine de planification , Golog prend également en charge la planification et la création de scripts. La planification signifie qu'un état objectif dans le modèle mondial est défini et que le solveur introduit un système logique dans cet état. Les scripts de comportement implémentent des procédures réactives, qui s'exécutent comme un programme informatique.

Par exemple, supposons que l'idée est d'écrire une histoire. L'utilisateur définit ce qui doit être vrai à la fin du tracé . Un solveur démarre et applique les actions possibles à la situation actuelle jusqu'à ce que l'état cible soit atteint. La spécification d'un état cible et les actions possibles sont réalisées dans le modèle du monde logique.

En revanche, un comportement réactif câblé n'a pas besoin de solveur mais la séquence d'action est fournie dans un langage de script . L' interpréteur Golog , qui est écrit en Prolog, exécute le script et cela amènera l'histoire à l'état objectif.

Les références