DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦3f0cc4058⟧ TextFile

    Length: 2051 (0x803)
    Types: TextFile
    Notes: R1k Text-file segment

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦dc5ae9cd6⟧ 
            └─⟦this⟧ 

TextFile

Ce repertoire contient l'implementation du probleme FruitCake en utilisant
que des faits pour decrire tout l'environement et toutes les actions.
==========================================================================

De plus, il existe une version graphique et une version non graphique.
 
 
  
 REMARQUES :
 ---------

 => blocage si une pile de cubes atteint la limite haute de l'environement, car
   le move limite le deplacement a l'environement et le get_label renverra
   donc toujours un label different de null_label (si le label recu est differnt
   de null_label alors on fait un move ...etc).


 => La recherche de place libre est assuree par deux regles :
   - Search_Free_Action_Rule : qui cherche une place libre positionnee sur un autre
                               cube
   - Search_Free_On_Table_Action_Rule : qui cherche une place sur la table

    !!!! ces deux regles sont concurrentes : ainsi si une place libre existe
    sur la table, ce n'est pas forcement la regle Search_Free_On_Table_Action_Rule
    qui sera validee ...

    (on peut facilement forcer le declanchement de la regle search_on_table
    en ajoutant les clauses suivantes dans la premisse de la regle
    search_Free_Action_Rule :

       visual_blocks.exist (( label=> is_any ,
                              position_x => is_equal=> value(2) ,
                              position_y => is_equal(min_y))),
       visual_blocks.exist (( label=> is_any ,
                              position_x => is_equal=> value(3) ,
                              position_y => is_equal(min_y))),
       ...
       visual_blocks.exist (( label=> is_any ,
                              position_x => is_equal=> value(11) ,
                              position_y => is_equal(min_y))),

    ->il aurait ete interressant de pouvoir ecrire
         il n'existe pas de 'block' vide a la position min_y et n'importe quelle
         position_x  => cependant un  'block' vide n'est pas un fait (il faudrait
         pour cela definir tous les cubes vides de l'environement)