Merci pour vos liens, je les étudirais demain après mais cours ^^.
Sinon j'ai commencer à regarder le lien de DarkBasic mais l'exemple d'aprentissage que j'ai voulu transformer en Pure bug.
Code : Tout sélectionner
Structure TYPENEURONE
Poid1.f
Poid2.f
Seuil.f
EndStructure
Dim N.TYPENEURONE(0)
;Initialisation des valeurs
;randomize timer()
N(0).Poid1 = (Random(10)-10)*0.01
N(0).Poid2 = (Random(10)-10)*0.01
N(0).Seuil = (Random(10)-10)*0.01
OpenConsole()
Repeat
v.l = Input()
If v =1
LEARN_AND()
fonction$="AND"
EndIf
If v =2
LEARN_NAND()
fonction$="NAND"
EndIf
If v =3
LEARN_OR()
fonction$="OR"
EndIf
If v =4
LEARN_NOR()
fonction$="NOR"
EndIf
PrintN(fonction$)
PrintN( "")
PrintN( "E1 E2 Sortie")
;R=0 => pas d'apprentissage possible
PrintN( "-1 -1 ",F_Neurone(-1,-1, 0)
PrintN( "-1 1 ",F_Neurone(-1, 1, 0)
PrintN( " 1 -1 ",F_Neurone( 1,-1, 0)
PrintN( " 1 1 ",F_Neurone( 1, 1, 0)
PrintN( ""
PrintN( "Seuil : "+N(0).Seuil)
PrintN("Poid1 : "+N(0).Poid1)
PrintN( "Poid2 : "+N(0).Poid2)
ForEver
;Fonction pour apprendre le ET logique au neurone
Procedure LEARN_AND()
Repeat
cycle=cycle+1
learn=0
If F_Neurone(-1,-1, -1)=-1
learn=learn+1
EndIf
If F_Neurone(-1, 1, -1)=-1
learn=learn+1
EndIf
If F_Neurone( 1,-1, -1)=-1
learn=learn+1
EndIf
If F_Neurone( 1, 1, 1)= 1
learn=learn+1
EndIf
If cycle>10
N(0).Seuil = -N(0).Seuil
cycle=0
EndIf
Until learn=4
EndProcedure
;Fonction pour apprendre le NON-ET logique au neurone
Procedure LEARN_NAND()
Repeat
cycle=cycle+1
learn=0
If F_Neurone(-1,-1, -1)=1
learn=learn+1
EndIf
If F_Neurone(-1, 1, -1)=1
learn=learn+1
EndIf
If F_Neurone( 1,-1, -1)=1
learn=learn+1
EndIf
If F_Neurone( 1, 1, 1)= -1
learn=learn+1
EndIf
If cycle>10
N(0).Seuil = -N(0).Seuil
cycle=0
EndIf
Until learn=4
EndProcedure
Procedure LEARN_OR()
Repeat
cycle=cycle+1
learn=0
If F_Neurone(-1,-1, -1)=-1
learn=learn+1
EndIf
If F_Neurone(-1, 1, -1)=1
learn=learn+1
EndIf
If F_Neurone( 1,-1, -1)=1
learn=learn+1
EndIf
If F_Neurone( 1, 1, 1)=1
learn=learn+1
EndIf
If cycle>10
N(0).Seuil = -N(0).Seuil
cycle=0
EndIf
Until learn=4
EndProcedure
;`Fonction pour apprendre le OU logique au neurone
Procedure LEARN_NOR()
Repeat
cycle=cycle+1
learn=0
If F_Neurone(-1,-1, -1)=1
learn=learn+1
EndIf
If F_Neurone(-1, 1, -1)=-1
learn=learn+1
EndIf
If F_Neurone( 1,-1, -1)=-1
learn=learn+1
EndIf
If F_Neurone( 1, 1, 1)=-1
learn=learn+1
EndIf
If cycle>10
N(0).Seuil = -N(0).Seuil
cycle=0
EndIf
Until learn=4
EndProcedure
;Fonction pour apprendre le NON-OU logique au neurone
;Fonction qui représente le neurone
;E1 etc... = entrées
;R = résultat desiré
Procedure F_Neurone(E1,E2,R)
Valeur.f = E1*N(0).Poid1 + E2*N(0).Poid2 - N(0).Seuil
If Valeur>0 THEN Sortie=1 Else Sortie=-1
If Sortie <> R
Inc N(0).Poid1, E1*R*0.1
Inc N(0).Poid2, E2*R*0.1
EndIf
ProcedureReturn Sortie
EndProcedure
Je gagne une erreur ligne 12 "garbage ...", surement une erreur de frappe mais laquelle ???
Allez bonne nuit tout le monde car demain j'ai philo et si je dors dans son cours elle va encore trouver une excuse pour me faire chi**