CFG Approximations : Implémentation légère de 4 algorithmes de compression de séquences basés sur des grammaires hors-contexte

Approximations est un package Java d'outils mettant en oeuvre les différents algorithmes de compression décrits dans cet article de Lehmann et Shelat à SODA 2002.

Téléchargement du package

L'archive est disponible en 2 formats :

  JAR (approximations.JAR)
Ou
 
  TAR Gzipé (approximations.TGZ)

A propos de l'execution de programmes JAVA

L'installation d'une version du JDK (ou JRE ou SDK) JAVA supérieure ou égale à la 1.1.2 est requise pour l'execution d'une application JAVA. Elle est disponible chez SUN.

Sous Zindozs (peut être sous certaines distrib'...) un jar est executable par un simple double-click, une fois Java installé.

Un fichier JAR peut aussi être décompressé avec l'outil JAR (jar.exe sous Zin ...). La ligne de commande à taper devrait ressembler à : jar -xvf approximations.JAR

Une fois les sources et classes décompressés, l'exécution d'une classe exécutable X est provoquée à la racine du repertoire approximations par la commande

java -cp . approximations.Simulation

Description et/ou mode d'emploi

Le package comprend les classes exécutables suivantes :

  • approximations.Simulation : Interface graphique du logiciel, permet de tester les algorithmes de compression en rentrant "à la main" la chaîne de caractères à compresser. Bien que celle ci permette aussi la compression du contenu d'un fichier, il est conseillé d'utiliser la classe Calcul pour compenser la perte de temps de calcul induite par l'utilisation de Java. Le choix du ou des algorithmes à executer sur l'entrée est effectué via les checkboxes précédents les noms des algorithmes. L'interface est lancée par une "exécution" de l'archive JAR, ou bien par la commande :
    java -cp . approximations.Simulation
  • approximations.Calcul : Mode "ligne de commande" du logiciel, permet une execution plus rapide et parcimonieuse en mémoire sur de gros exemples. Son appel se fait dans un shell par une commande proche de :
    java -cp . approximations.Calcul ...options... fichiers
    où les options sont -(L|LZ78) (ON|OFF), -(B|BISECTION) (ON|OFF), -(S|SEQUENTIAL) (ON|OFF) ou -(G|GREEDY) (ON|OFF) activant/désactivant les différents algorithmes.
  • approximations.Shuffle : Logiciel "ligne de commande" mélangeant un fichier texte contenant du langage naturel et envoyant le résultat vers la sortie standard. Ligne de commande :
    java -cp . approximations.Shuffle fichier