retour

Programme SALADD de Compilation de VDD


>Téléchargement du programme<
>Téléchargement des benchmarks<

Utilisation du compilateur :


Compilation :    javac Compilation.java
ou                           javac -cp . Compilation.java              


Execution :     java Compilation fichier_a_compiler.xml -t=[type] [options]
ou                         java -cp . Compilation fichier_a_compiler.xml -t=[type] [options]   

    obligatoire :
     fichier_a_compiler.xml
            le nom du ou des fichiers à compiler
            Plusieurs noms de fichiers d'un même problème à compiler peuvent être entrés, séparés par des espaces. Si plusieurs fichiers, tous doivent porter sur le même ensemble de variable.
        -t=[type]
            type de fichier : [type] = "plus" ou "time" (aussi acceptés "p" "t" "+")
            Indique la nature additive ou multiplicative des valuations du fichier à compiler.
    options :
        -h=?
           Numero d'heuristique d'ordonnancement des varialbes; '1':MCF, '2':Band-Width, '3':MCS-Inv, '4':MCS+1, '5':Force, '0':ordre naturel (ordre du fichier CSP), '-1':ordre aléatoire.
        -hcon=?
       
Numero d'heuristique d'ordonnancement des contraintes; '1':BCF, '2':tri par difficulté, '3':tri par dureté, '0' : ordre naturel, '-1' : ordre aléatoire, '-2':ordre naturel inversé
        -ff=[forme]
             Forme finale : [forme] = "AADD", "SLDDp", "SLDDt" ou "ADD"
     -save=[nom_fichier_sauvegarde.dot]
             Nom du fichier de sortie (pas l'option -> pas de sortie)
     -NoSkip
            Garder les noeuds bégayants
     -text=?
            Quantité de texte à afficher. ?= de '0' à '3',  0 étant le minimum de texte affiché possible, 3 le maximum.


Chargement d'un fichier compilé :


Compilation :    javac Read.java
ou                           javac -cp . Read.java              


Execution :     java Read -read=nom_fichier_a_lire.dot [options]
ou                         java -cp . Read -read=nom_fichier_a_lire.dot [options]
 

    obligatoire :
     -read=[nom_fichier_a_lire.dot]
            fichier à lire, extention .dot.
    options :
        -ff=[forme]
             Forme finale : [forme] = "AADD", "SLDDp", "SLDDt" ou "ADD"
     -save=[nom_fichier_sauvegarde.dot]
             Nom du fichier de sortie (pas l'option -> pas de sortie)
     -NoSkip
            Garder les noeuds bégayants
     -text=?
            Quantité de texte à afficher. ?= de '0' à '3',  0 étant le minimum de texte affiché possible, 3 le maximum.


Exemples d'utilisation :

       java Compilation small.xml -t=+
   
    compilation du fichier small.xml de type additif. (par défaut : heuristique utilisé : MCS; heuristique d'ordonnancement de contraintes utilisé : ordre naturel; forme finale : forme de compilation; pas de sortie; noeuds bégayants suprimmés; niveau d'affichage du texte : 1).

          java Compilation medium.xml mediumPrices.xml -t=+ -h=4 -hcon=2 -ff=SLDDp -save=mediumSLDDp.dot -NoSkip -text=0
     java Read mediumSLDDp.dot -ff=ADD -text=3


  la premiere ligne compile le fichier medium.xml et le fichier associé mediumPrices.xml (qui contient les contraintes valuées). le problème est de type additif, compilé avec l'heuristique d'ordonnancement de variable MCS+1 et l'heuristique d'ordonnancement de contrainte 2 (tri par difficulté). la compilation est obligatoirement faite en SLDD+, puis la fonction n'est pas traduite. La forme compilée est sauvegardée dans mediumSLDDp.dot. Les noeuds bégayants sont gardés et aucun texte ne sera affiché durant la compilation.
        La 2eme ligne charge le premier fichier puis traduit la fonction en ADD mais ne la sauvegarde pas. Cependant tous les détails textuels sont affichés.

Details sur les arguments :

    Compilation :
        fichier_a_compiler : le nom du fichier doit etre dans le meme dossier que le programme, ou l'adresse doit etre entree explicitement.
        autre_fichier_a_compiler : d'autres fichiers peuvent être ajoutés au premier, ils doivent porter sur un sous ensemble de variables définies dans le premier fichier.
        -t=[type] : indique si les contraintes sont de types additives (par exemple contrintes de prix) ou multiplicatives (par exemple probabilité). si elles sont de type additives, le fichier d'entrée doit être de type WCSP. si elles sont de type multiplicatif, le fichier d'entrée doit être de type BIF-XML.
        -h=? : seul un entier est accepté (à la place du '?').
        -hcon=? : seul un entier est accepté (à la place du '?').
        -ff=[forme] : la fonction sera obligatoirement compilée en SLDDp ou SLDDt (suivant le type de contraintes). il pourra cependant etre transphormé apràs compilation
        -save=[nom_fichier_sauvegarde.dot] : ras
        -NoSkip : Les noeuds bégayants sont conservés. Toutes les variables seront rencontrées une fois quelque soit le chemin.
     -text=?
: quatres niveaux d'affichage de texte :
                    -text=0 : aucun texte sauf erreure de compilation
            -text=1 : affichage de taille de la forme compilée et transformée
            -text=2 : même chose que précédemment + détails et progression de la compilation
            -text=3 : même chose que précédemment + affichage des ordres des variables et des contraintes.


format de fichier :

   Fichier d'entrée XML : voir
        -Olivier Roussel and Christophe Lecoutre. XML Representation of Constraint Networks : Format XCSP 2.1.Technical report, CoRR abs/0902.2362, feb 2009.
        -Fabio Gagliardi Cozman. JavaBayes Version 0.347, Bayesian Networks in Java, User Manual. Technical report, dec 2002. Benchmarks at http ://sites.poli.usp.br/pmr/ltd/Software/javabayes/Home/node3.html.

    Format de sortie :
        Le format de sortie utilise le formalisme Graphviz dot. ainsi les diagrames peuvent être visualisés grâce a cette outil (déconseillé pour les graphs de plusieurs milliers de noeuds). Ce format étant incomplet pour nos besoin, des informations sont ajoutés.
        Notez que seul les fichiers générés par ce compilateur peuvent être lu par ce compilateur. toute modification à la main peut géner la relecture du fichier.




Contact :

        Nicolas Schmidt : Nac.s   *at*   free.fr
        Hélène fargier : fargier    *at*   irit.fr