Je relâche un groupe de fonction à propos de la logique "Fuzzy" utilisé entre autre dans la programmation d'un intelligence artificielle.
(J'ai perdu le code de démonstration, désolé)
A+
Guimauve
Code : Tout sélectionner
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Nom du projet : Fonction FuzzyLogic
; Nom du Fichier : Lib_FuzzyLogic.pb
; Version du fichier : 1.0.0
; Programmation : OK
; Programmé par : Guimauve
; Date : 11-09-2007
; Mise à jour : 10-05-2009
; Codé avec PureBasic V4.30
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Procedure.d FuzzyGrade(Value.d, x0.d, x1.d)
If Value <= x0
FuzzyResult.d = 0.0
ElseIf Value >= x1
FuzzyResult = 1.0
Else
FuzzyResult = (Value - x0) / (x1 - x0)
EndIf
ProcedureReturn FuzzyResult
EndProcedure
Procedure.d FuzzyReverseGrade(Value.d, x0.d, x1.d)
If Value <= x0
FuzzyResult.d = 1.0
ElseIf Value >= x1
FuzzyResult = 0.0
Else
FuzzyResult = (x1 - Value) / (x1 - x0)
EndIf
ProcedureReturn FuzzyResult
EndProcedure
Procedure.d FuzzyTriangle(Value.d, x0.d, x1.d, x2.d)
If Value <= x0
FuzzyResult.d = 0.0
ElseIf Value = x1
FuzzyResult = 1.0
ElseIf (Value > x0) And (Value < x1)
FuzzyResult = (Value - x0) / (x1 - x0)
ElseIf (Value > x1) And (Value < x2)
FuzzyResult = (x2 - Value) / (x2 - x1)
EndIf
ProcedureReturn FuzzyResult
EndProcedure
Procedure.d FuzzyTrapezoid(Value.d, x0.d, x1.d, x2.d, x3.d)
If Value <= x0
FuzzyResult.d = 0.0
ElseIf (Value >= x1) And (Value <= x2)
FuzzyResult = 1.0
ElseIf (Value > x0) And (Value < x1)
FuzzyResult = (Value-x0) - / (x1 - x0)
ElseIf (Value > x2) And (Value < x3)
FuzzyResult = (x3 - Value) / (x3 - x2)
EndIf
ProcedureReturn FuzzyResult
EndProcedure
Procedure.d FuzzyAND(A.d, B.d)
If A > B
FuzzyResult.d = B
ElseIf A <= B
FuzzyResult = A
Else
FuzzyResult = A
EndIf
ProcedureReturn FuzzyResult
EndProcedure
Procedure.d FuzzyOR(A.d, B.d)
If A < B
FuzzyResult.d = B
ElseIf A >= B
FuzzyResult = A
Else
FuzzyResult = A
EndIf
ProcedureReturn FuzzyResult
EndProcedure
Procedure.d FuzzyNOT(A.d)
ProcedureReturn 1.0 - A
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< FIN DU FICHIER <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<