Tutoriel : les propriétés logiques | nomoseed
design intelligence

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

tutoriel:proprietes_logiques [2013/10/25 13:01]
127.0.0.1 modification externe
tutoriel:proprietes_logiques [2014/09/17 17:21] (Version actuelle)
admin
Ligne 685: Ligne 685:
 La logique temporelle nécessite une mémoire événementielle pouvant mémoriser plus d'un fait par type d'évènement (//**maximum_of_internal_event**// > 1) et un seuil d'oubli supérieur à la période de l'horloge ici à 500ms (//**time_span_limit**// > 500). La logique temporelle nécessite une mémoire événementielle pouvant mémoriser plus d'un fait par type d'évènement (//**maximum_of_internal_event**// > 1) et un seuil d'oubli supérieur à la période de l'horloge ici à 500ms (//**time_span_limit**// > 500).
  
-Pour les exemples qui suivent, une mémorisation de cinq faits est souhaitée sur une durée strictement inférieure à 3500ms ; toutefois, cinq événements consécutifs donnent une profondeur strictement inférieure à 2500 ms.+Pour les exemples qui suivent, une mémorisation de cinq faits est souhaitée sur une durée strictement inférieure à 3500ms ; toutefois, cinq événements consécutifs donnent une profondeur strictement inférieure à 2500ms.
  
 Il faut donc modifier la [[doc:langage_nomo?&#la_base_de_connaissances|configuration par défaut]], soit le fichier //tutorial_1.base// : Il faut donc modifier la [[doc:langage_nomo?&#la_base_de_connaissances|configuration par défaut]], soit le fichier //tutorial_1.base// :
Ligne 695: Ligne 695:
   <header xmlns="http://www.nomoseed.org/project"> ... </header>   <header xmlns="http://www.nomoseed.org/project"> ... </header>
      
-  <time_span_limit value="3500"/>+  <time_span_limit value="3500ms"/>
   <maximum_of_maximizations value="1"/>   <maximum_of_maximizations value="1"/>
   <maximum_of_internal_events value="5"/>   <maximum_of_internal_events value="5"/>
Ligne 752: Ligne 752:
 Si //**timespan**// multiple de 500ms (puisque //**tolerance** = 0//) est strictement inférieur à 2500ms alors la règle se déclenchera dès qu'un premier évènement acquerra la durée désignée. Elle demeurera sélectionnée à chaque pas puisque le flot d'évènement ne cessera pas de fournir de nouveaux évènements. Si //**timespan**// multiple de 500ms (puisque //**tolerance** = 0//) est strictement inférieur à 2500ms alors la règle se déclenchera dès qu'un premier évènement acquerra la durée désignée. Elle demeurera sélectionnée à chaque pas puisque le flot d'évènement ne cessera pas de fournir de nouveaux évènements.
  
-Si le délai de la conclusion devient supérieur à zéro, dans ce cas la profondeur de la mémoire dépend de la capacité à résorber les délais. Par exemple si le //**delay** = 500//, la profondeur est simplement décalée d'autant.+Si le délai de la conclusion devient supérieur à zéro, dans ce cas la profondeur de la mémoire dépend de la capacité à résorber les délais. Par exemple si le //**delay** = 500ms//, la profondeur est simplement décalée d'autant.
  
 Pour tester l'oubli non par l'écrasement d'évènements mais par leur dépassement du seuil, une solution consiste ici à diviser par deux la fréquence de sélection de //"C1"// en introduisant une prémisse inhibitrice. Pour tester l'oubli non par l'écrasement d'évènements mais par leur dépassement du seuil, une solution consiste ici à diviser par deux la fréquence de sélection de //"C1"// en introduisant une prémisse inhibitrice.
Ligne 780: Ligne 780:
     <information value="go" tolerance="0"/>     <information value="go" tolerance="0"/>
     <credibility value="1" tolerance="0"/>     <credibility value="1" tolerance="0"/>
-    <timespan value="2000" tolerance="0"/>+    <timespan value="2000 ms" tolerance="0"/>
   </premise>   </premise>
   <conclusion model="tutorial_1" category="command" type="motor">   <conclusion model="tutorial_1" category="command" type="motor">
Ligne 826: Ligne 826:
   </premise>   </premise>
   <conclusion model="tutorial_1" category="conception" type="control">   <conclusion model="tutorial_1" category="conception" type="control">
-    <information value="stop" delay="1000"/>+    <information value="stop" delay="1000 ms"/>
   </conclusion>   </conclusion>
 </rule> </rule>
Ligne 836: Ligne 836:
   </premise>   </premise>
   <conclusion model="tutorial_1" category="conception" type="control">   <conclusion model="tutorial_1" category="conception" type="control">
-    <information value="go" delay="INF"/>+    <information value="go" delay="MAX"/>
   </conclusion>   </conclusion>
 </rule> </rule>
Ligne 863: Ligne 863:
     </premise>     </premise>
     <conclusion model="tutorial_1" category="conception" type="control">     <conclusion model="tutorial_1" category="conception" type="control">
-      <information value="go" delay="500"/>+      <information value="go" delay="500 ms"/>
     </conclusion>     </conclusion>
   </rule>   </rule>
Ligne 869: Ligne 869:
 </code> </code>
  
-noter que l'ajout de prémisses peut transformer une horloge en "boucle tant que".+À noter que l'ajout de prémisses peut transformer une horloge en "boucle tant que".
 ==== Les séries temporelles ==== ==== Les séries temporelles ====
  
Ligne 976: Ligne 976:
     <information value="red" tolerance="0" />     <information value="red" tolerance="0" />
     <credibility value="1" tolerance="INF"/>     <credibility value="1" tolerance="INF"/>
-    <timespan value="500" tolerance="0"/>+    <timespan value="500 ms" tolerance="0"/>
   </premise>   </premise>
   <premise model="tutorial_1" category="perception" type="hue">   <premise model="tutorial_1" category="perception" type="hue">
Ligne 999: Ligne 999:
     <information value="red" tolerance="0" />     <information value="red" tolerance="0" />
     <credibility value="1" tolerance="INF"/>     <credibility value="1" tolerance="INF"/>
-    <timespan value="500" tolerance="50"/>+    <timespan value="500 ms" tolerance="50"/>
   </premise>   </premise>
   <premise model="tutorial_1" category="perception" type="hue">   <premise model="tutorial_1" category="perception" type="hue">
Ligne 1080: Ligne 1080:
     </premise>     </premise>
     <conclusion model="tutorial_1" category="prediction" type="hue">     <conclusion model="tutorial_1" category="prediction" type="hue">
-      <information value="red_prediction" delay="1500"/>+      <information value="red_prediction" delay="1500 ms"/>
     </conclusion>     </conclusion>
   </rule>   </rule>
Ligne 1097: Ligne 1097:
       <information value="red_prediction" tolerance="0"/>       <information value="red_prediction" tolerance="0"/>
       <credibility value="1" tolerance="INF"/>       <credibility value="1" tolerance="INF"/>
-      <timespan value="1500" tolerance="50"/>+      <timespan value="1500 ms" tolerance="50"/>
     </premise>     </premise>
     <conclusion model="tutorial_1" category="check" type="hue">     <conclusion model="tutorial_1" category="check" type="hue">
Ligne 1153: Ligne 1153:
 </code> </code>
  
-Le schème "management_remember" qui permet de mettre en place ou défaire un état //red// ou //bleu//. Lorsque l'agent est activé, aucune intention //remember// n'est présente. Dès que l'agent perçoit une teinte de la dalle, la règle sélectionnée correspond soit //"RR1"// soit //"RB1"//. Ces règles produisent un évènement sans délai de sorte que toutes les précédentes intentions sont éliminées. Elles autorisent ensuite la production d'évènements intentionnels avec un délai infini via respectivement //"RR2"// et //"RB2"//.+Le schème "management_remember" qui permet de mettre en place ou défaire un état //red// ou //bleu//. Lorsque l'agent est activé, aucune intention //remember// n'est présente. Dès que l'agent perçoit une teinte de la dalle, la règle sélectionnée correspond soit //"RR1"// soit //"RB1"//. Ces règles produisent un évènement sans délai de sorte que toutes les précédentes intentions sont éliminées. Elles autorisent ensuite la production d'évènements intentionnels avec un délai maximal via respectivement //"RR2"// et //"RB2"//.
  
 L'état //bleu// ou //red// est représenté à la fois par un événement avec un indice temporel nul et par un évènement intentionnel. L'état //bleu// ou //red// est représenté à la fois par un événement avec un indice temporel nul et par un évènement intentionnel.
Ligne 1176: Ligne 1176:
     </premise>     </premise>
     <conclusion model="tutorial_1" category="conception" type="remember">     <conclusion model="tutorial_1" category="conception" type="remember">
-      <information value="red" delay="INF"/>+      <information value="red" delay="MAX"/>
     </conclusion>     </conclusion>
   </rule>   </rule>
Ligne 1196: Ligne 1196:
     </premise>     </premise>
     <conclusion model="tutorial_1" category="conception" type="remember">     <conclusion model="tutorial_1" category="conception" type="remember">
-      <information value="bleu" delay="INF"/>+      <information value="bleu" delay="MAX"/>
     </conclusion>     </conclusion>
   </rule>   </rule>
 </scheme> </scheme>
 </code> </code>