Module main
[hide private]
[frames] | no frames]

Source Code for Module main

 1  #!/usr/bin/env python 
 2  # -*- coding: iso-8859-1 -*- 
 3   
 4   
 5  # Cet exemple permet de démontrer l'utilisation de pyfuzzy pour la prise de décision. 
 6  # L'exemple utilisé est tiré d'un examen Median de l'UV SY10 
 7  # enseignée par Z. Zalila (Groupe de logique floue) de l'Université de Technologie de 
 8  # Compiègne.  (d'après une idée de A. Biannic & F. Linget, SY 10 A97) 
 9   
10  import sys 
11   
12 -def create_system():
13 """Create fuzzy system.""" 14 import analyse_risque_floue 15 return analyse_risque_floue.create_system()
16 17 #import fuzzy.storage.fcl.Reader 18 #return fuzzy.storage.fcl.Reader.Reader().load_from_file("analyse_risque_floue.fcl") 19 20
21 -def main():
22 """Main program.""" 23 24 # build it from scratch 25 system = create_system() 26 27 output_values = {"output_risque_sit_geo" : 0.0} 28 input_val = {} 29 input_val['input_Nbre_habitants'] = float (sys.argv[1]) 30 input_val['input_dist_frontiere'] = float (sys.argv[2]) 31 print input_val 32 # system.calculate(input={'input_Nbre_habitants':12., 'input_dist_frontiere':50.} , output = output_values) 33 system.calculate(input=input_val , output = output_values) 34 35 for classes in output_values.values(): 36 for classe in classes: 37 print classe + " \t\t: %.2f" %classes[classe]
38 39 if __name__ == "__main__": 40 # check if we want only generate docs 41 if "doc" in sys.argv: 42 from fuzzy.doc.plot.gnuplot import doc 43 system = create_system() 44 doc = doc.Doc("../doc") 45 doc.createDoc(system) 46 for a in ["Nul","Faible","Moyen","Eleve","Inacceptable"]: 47 doc.create3DPlot_adjective(system,"input_Nbre_habitants","input_dist_frontiere","output_risque_sit_geo",a)#,x_logscale=1,y_logscale=1) 48 elif "dot" in sys.argv: 49 system = create_system() 50 import fuzzy.doc.structure.dot.dot 51 import subprocess 52 for name,rule in system.rules.items(): 53 cmd = "dot -T png -o '%s/Rule %s.png'" % ("../doc",name) 54 f = subprocess.Popen(cmd, shell=True, bufsize=32768, stdin=subprocess.PIPE).stdin 55 fuzzy.doc.structure.dot.dot.print_header(f,"XXX") 56 fuzzy.doc.structure.dot.dot.print_dot(rule,f,system,"") 57 fuzzy.doc.structure.dot.dot.print_footer(f) 58 cmd = "dot -T png -o '%s/System.png'" % "../doc", 59 f = subprocess.Popen(cmd, shell=True, bufsize=32768, stdin=subprocess.PIPE).stdin 60 fuzzy.doc.structure.dot.dot.printDot(system,f) 61 else: # no docs => start main 62 if len(sys.argv) == 1: 63 print "Usage : \n" + sys.argv[0] +" [Nombre_habitants] [distance_frontiere]\n" 64 sys.exit(0) 65 main() 66