Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Vos tutoriels et astuces


Index du Forum » Vos tutoriels et astuces » Différentes IA (applications)
Ibi Hors ligne Membre Points: 643 Défis: 115 Message

Différentes IA (applications)

Posté le 03/05/2008 17:40

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 !



LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 49 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd