Version Française English Version Planete-casio.fr
Bienvenue sur la nouvelle version de planete-casio! Laissez vos impressions sur le forum!
Forums Casio - Astuces Calculatrices Casio

Index du Forum | Astuces Calculatrices Casio | Différentes IA (applications)
Ibi
Hors ligne
Statut: Membre
Niveau: Elite
Points: 589
Défis: 115
Email | Message
Posté le 03/05/2008 17:40

Différentes IA (applications):

Voici les principales IA réalisables en Basic :

- IA pour une unité qui évolue dans un espace a 2 ou 3 dimensions

- IA pour une stratégie définie (type IA pour un jeu d'échecs ...)

- IA vocale (bot de conversation).


Je vous propose ici une initiation a ces différents types d'IA. Je vais donc en toute logique commencer par la dernière : l'IA vocale. Bien sur la calculatrice ne peut pas d'exprimer vocalement mais elle peut afficher des messages.

A partir d'un programme simple a réaliser au niveau programmation il est aisé d'obtenir un bot de conversation c'est a dire une IA avec laquelle on peut discuter comme on pourrait le faire avec quelqu'un de vivant.

Pour commencer il faut préciser que comme les fonctions utilisant les strings (chaines de caractères n'existent pas sur toutes les Casio et que ce programme d'IA peut se réaliser sur toutes les Casio Graphique programmables). Cela implique un plus grand nombre de tests a effectuer et un plus grand risque d'erreurs.


Explications :

Si l'on utilise les chaines de caractères, on peut utiliser la fonction rechercher une expression dans la chaine. C'est a dire que l'on peut rechercher un mot dans la phrase entrée et étudier sa position par rapport aux autres pour véritablement comprendre la phrase.

Si l'on n'emploie pas les chaines de caractères cela signifie d'abord saisie uniquement par le ?. Cela permet également de pouvoir utiliser le programme sur une Graph 25. Mais surtout cela implique que l'on doit calculer les mots en valeur.

Principe :

on attribue a chaque variable une valeur :


2->A:3->B:4->C ...




Ce principe permet de convertir le mot TABLE en 9828 (21*2*3*13*6) puisque la succession de deux lettres entraine une multiplication implicite. Il est nécessaire de commencer a A=2 pour que le A est une importance (si le A=1 alors TBLE serait équivalent à TABLE).

Le problème majeur de ce système est que des mots vont êtres équivalents (par exemple DE=5*6=30 et AN=2*15=30). Pour éviter ce genre de problème la solution consiste a ne pas donner de valeurs entières au variables lettres. Toutefois il faut attribuer des valeurs finies (par exemple [PI]->A poserait rapidement problème) car les arrondis de calculs fausseraient les résultats. Nous verrons un peu plus loin que cela a d'autres inconveniants




Remarque : le ne pouvant être saisi avec le ? il est nécessaire d'écrire tous les mots attachés.


Ensuite, il y a deux méthode d'analyse :

- La méthode phrase simple. Cette méthode est idéale pour les expressions et les phrases simples ou réponses courtes. Elle consiste à enregistrer des phrases courantes et ensuite de vérifier simplement si le texte entré est égal.


If [TETA]=MERCI
Then ...



- La méthode par quotient de valeurs. Cette méthode consiste a diviser successivement l'expression entrée par un grand nombre de mots valeurs. Ce système ne fonctionne en revanche que si l'on utilise des entiers pour A, B, C ....


If [TETA]/MERCI=Int([TETA]/MERCI)
Then ...



En effet si [TETA] est divisible par MERCI (dans cet exemple) alors le quotient est égal à sa partie entière (puisque c'est un entier). Si on n'uitilise pas des valeurs entières [TETA] sera nécessairement non entier (a part quelques infimes cas) donc sont quotient par MERCI sera également non-entier et le test sera résoluement faux.



Voici un maintenant un programme extérieur (très basique) fonctionnant sur le premier mode de fonctionnement :


1.023->A
2.087->B
3.45->C
4.099->D

... (choisissez vous même les valeurs ca n'a pas d'importance) ...

26,077->Z
Lbl 0
ClrText
?->[TETA]
ClrText
If [TETA]=SALUT
Then
SALUT ![DISP]
Goto 0
IfEnd
If [TETA]=BONJOUR
Then
SALUT ![DISP]
Goto 0
IfEnd
If [TETA]=CAVA
Then
OUI ET TOI ?[DISP]
Goto 0
IfEnd
If [TETA]=OUI
Then
^^[DISP]
Goto 0
IfEnd
If [TETA]=NON
Then
DOMMAGE[DISP]
Goto 0
IfEnd
- MOT INCONNU -[DISP]
Goto 0


(remarque on peut utiliser la fonction _Or mais celle ci n'est pas présente sur Graph 25). De même [TETA] n'est pas présent sur les graph 25, dans ce cas il faut utiliser :


?->A
A->List 1[1]
1.023->A (ou la valeur donnée au départ si elle est différente)



Bien sûr après il faut effectuer les tests avec List 1[1].


On remarque bien sur qu'il faut paramétrer le OUI et le NON car dans le cas d'une autre question les réponses ne seront pas adaptées.
Je posterait la suite à ce sujet prochainement ...


en attendant si vous avez des questions, des remarques, des ajouts à faire, n'hésitez pas !





Thomatos
Hors ligne
Statut: Membre
Niveau: Vétéran
Points: 1308
Défis: 6
Email | Message
Posté le 03/05/2008 18:00 |
Moi j'attend l'explication des autres IA ...

Pour ce type d'IA, le problème c'est que ça deviens vite lourd :s ...
Gadgetroch
Hors ligne
Statut: Modérateur
Niveau: Confirmé
Points: 1776
Défis: 10
Email | Message
Posté le 03/05/2008 18:18 |
Le texte rend les choses vachement lourdes en effet, j'attends aussi ce que tu va dire sur les autres ia

Pourquoi pas creer un club pour les IA xD, j'deconne
----------------------------------
Calculatrice(s) : Graph 65 ; Graph 85 SD

Pour combattre Gadgetroch

" Si l'être humain ne me ressemble pas, si ses caractéristiques ne me correspondent pas, alors je confirme, je ne suis pas un être humain ! " Gadgetroch
Ibi
Hors ligne
Statut: Membre
Niveau: Elite
Points: 589
Défis: 115
Email | Message
Posté le 04/05/2008 10:03 |
Après sur ti89 j'avais créé un logiciel d'IA beaucoup plus perfectionné qui connaissait les structures de base des phrase en Francais, Anglais, Allemand et Japonais (oui désolé je ne parle pas d'autres langues ...)

Il reconnaissait la place des mots dans la phrase et répondait. Lorsqu'il ne connaissait pas un mot (parce que le programme isolait chaque mot pour le comprendre) il demandait a ce qu'on l'ajoute a son dictionnaire en précisant son sens.

Le problème c'est qu'il ne faut même pas imaginer faire ca sur Graph 65 XD
----------------------------------

Gadgetroch
Hors ligne
Statut: Modérateur
Niveau: Confirmé
Points: 1776
Défis: 10
Email | Message
Posté le 04/05/2008 11:39 |
Peut etre en addin sur 85
----------------------------------
Calculatrice(s) : Graph 65 ; Graph 85 SD

Pour combattre Gadgetroch

" Si l'être humain ne me ressemble pas, si ses caractéristiques ne me correspondent pas, alors je confirme, je ne suis pas un être humain ! " Gadgetroch


Index du Forum | Astuces Calculatrices Casio | Différentes IA (applications)
Pseudo :
Adresse email :
Réponse :
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :?:  :arrow:  :!:  :here:
Ajouter fichier joint :


Me prévenir par mail lorsqu'une réponse est postée



Recherche :
Publicité et partenaires
Top cinema - Les meilleurs films (par les créateurs de Planete Casio)
Top cinema - Les meilleurs films

www.planete-casio.fr v3.0 © crée par Neuronix et Muelsaco 2007
Il y a 13 connectés | Nous contacter | Recherches effectuées | Liens | Forum Commun Casio