Note: Le "je" utilisé dans les réponses désigne Tomaž Šolc
Oui. Boštjan Špetič a sorti le première version de G-Tablix en août 2004. G-Tablix utilise la librairie graphique GTK, et est écrit en Perl. Voir G-Tablix pour plus de détails.
Vous pouvez aussi utiliser un des éditeurs graphiques généralistes pour XML gratuits (vous pourrez alors utiliser la DTD présente dans le sous-répertoire examples des sources).
Peut-être. Il est théoriquement possible de compiler Tablix en passant par un émulateur UNIX comme Cygwin. Je sais que PVM3 et libxml peuvent être utilisés comme ça. Cependant, à ma connaissance, personne n'a essayé de compiler Tablix sur cette plateforme. Si vous êtes suffisamment courageux pour faire le premier test, envoyez s'il vous plaît un message sur la mailing list (ou encore mieux, d'écrire une page sur le Wiki pour expliquer comment vous avez fait).
Vous pouvez aussi utiliser Tablix sur une machine qui n'a que Microsoft Windows installé en utilisant un CD bootable, ou en bootant la machine depuis un serveur.
Tablix est livré avec un certain nombre de modules qui implémentent les restrictions les plus couramment utilisées. Reportez-vous au manuel de référence pour les modules pour voir en détails ce qu'implémente chaque module, et comment l'utiliser pour votre problème d'emploi du temps.
Des restrictions plus complexes peuvent être implémentées en utilisant une combinaison de restrictions provenant de plusieurs modules. Il existe trop de possibilités pour les documenter toutes. Utilisez votre imagination !
Si, vraiment, vous ne trouvez pas comment exprimer vos contraintes avec l'ensemble des modules existants, vous aurez certainement à écrire un nouveau module.Parfois, seules quelques modifications mineures sur un module existant suffisent, alors penchez vous sur cette piste en premier ! Voir HOW-TO Modules, partie 1, pour plus de détails sur la manière d'écrire des modules d'ajustage.
A: Probablement non. Tablix utilise une conception modulaire justement pour que l'auteur n'a pas le temps d'implémenter chaque besoin spécifique des utilisateurs. Le mieux que je puisse faire est de répondre occasionnellement à des questions sur la mailing list.
Vous êtes bien entendu invités à inclure vos modules dans la distribution et ainsi faciliter la tâche de ceux qui auraient besoin des mêmes fonctionnalités que les vôtres.
A1: La raison première de cette situation est que vous avez donné à Tablix un problème impossible à résoudre. Tablix ne dispose que d'une capacité limitée à vérifier les erreurs de description du problème. Un exemple d'erreur typique, qui empêche Tablix de trouver une solution, est qu'une restriction oblige un évènement à utiliser une certaine ressource, tandis qu'une autre restriction interdit le même évènement d'utiliser la même ressource (et que chacune de ces restrictions est obligatoire).
A2: La population de l'algorithme génétique a convergé vers un minimum local. Cela peut toujours se produire. Essyez de relancer Tablix. Vous pouvez réduire la probabilité qu'une convergence prématurée se fasse en augmentant le nombre de noeuds dans le cluster. (Voir le paramètre -n). Alternativement, vous pouvez accroître le poids des erreurs des restrictions obligatoires. Rappelez-vous qu'au plus l'emploi du temps est complexe, au plus vous aurez besoin d'un cluster important pour le résoudre avec Tablix.
A: Bonne question. Cela se produit occasionnellement,sans raison apparente. J'ai deux théories, la première un peu plus intéressante que l'autre. Si vous avez observé un tel comportement de Tablix, s'il vous plaît, envoyez-moi un mail en décrivant les circonstances. Cela m'aidera beaucoup.
Théorie 1: L'algorithme génétique peut devenir instable avec certains paramètres. Je pense que cela peut arriver lorsqu'une fonction d'ajustage commence à se comporter de façon chaotique. Ce comportement peut être l'effet de certaines parties de la fonction d'ajustage qui s'opposent fortement les unes aux autres (signifiant que résoudre un nombre de problèmes A produit approximativement le même nombre de problèmes B, et vice versa). Cela peut expliquer le fait que de supprimer certaines restrictions règle généralement le problème dans ce cas.
Theory 2: C'est un vieux bug, difficile à cerner de Tablix.
A: Tablix, comme c'est le cas avec n'importe quel programme utilisant un algorithme génétique, n'est pas parfait. Il trouvera une solution différente à chaque fois que vous le lancerez. Essayez de le lancer plusieurs fois et choisissez ensuite la meilleure solution.
Vous pouvez essayer d'identifier qu'elles erreurs sont les plus répandues dans l'emploi du temps généré (regardé les informations concernant la convergence ou utilisez l'utilitaire tablix2_plot ). Augmentez le poids pour ces erreurs dans le fichier de configuration.
Vous pourrez obtenir de meilleurs résultats en accroissant la taille totale de la population (en utilisant le paramètre -n ) ou en augmentant la taille de la population par noeud (avec le paramètre popsize de l'algorithme). Cela se traduira évidemment par une vitesse de nombre de générations par minutes moindre, et demandera plus de temps à Tablix pour trouver une solution, à moins que vous n'accroissiez la capacité totale de calcul du cluster (par exemple en ajoutant des machines) en même temps.
Vous pouvez également essayer de changer des paramètres de l'algorithme. La page "man" de tablix2(1) liste tous les paramètres disponibles, avec leur description. Par exemple, augmenter le paramètre localstep se traduit généralement par d'obtention de meilleurs résultats, mais d'un calcul plus lent.
A: Vous avez probablement atteint l'emploi du temps optimal que Tablix peut faire pour vous avec la configuration que vous lui avez donné. La seule chose que vous puissiez faire maintenant est soit de changer vos données, soit améliorer l'algorithme génétique de Tablix. Si vous choisissez la deuxième solution, envoyez-moi un mail, j'aimerai vous connaître.
A: Cela vient d'un bug de certaines vieilles versions de PVM3.
A: Cela vient d'un bug de certaines vieilles versions de PVM3.
A: Lisez ce manuel encore une fois. Ensuite, tout ce que vous trouverez dans le sous-répertoire doc . Parcourez les fichiers donnés en exemple dans le sous-répertoire example . Expérimentez le programme. Si vous ne comprenez toujours pas par où commencez, envoyez un message à la mailing list et quelqu'un vous aidera.
A: pvmd ne trouve pas l'exécutable tablix2_kernel .
Vérifiez l'option ep de votre fichier hostfile (man pvmd), vérifiez la variable d'environnement PATH . Pour des raisons inconnues cela peut aussi se produire si vous utilisez des adresses IP au lieu des noms d'hôtes dans le fichier hostfile.
A: Utiliser la commande ./configure --with-included-gettext.
A: Cela ressemble à un comportement bizarre (bug?) de PVM3. Une des raisons habituelles de ce comportement provient du fait que le contenu du fichier /etc/hostname d'une des machines du cluster est différent de celui retourné par le DNS. Par exemple : si vous pouvez faire un ping sur une machine du cluster en utilisant son nom d'hôte node4.cluster.lan, alors le contenu du fichier /etc/hostname sur cette machine devrait être node4 et rien d'autre.
A: La signification première de ce genre de message est que Tablix a détecté une inconsistance dans la description du problème. Votre problème d'emploi du temps n'a pas de solution puisque un ou plusieurs évènements ne peuvent pas être assignés à une salle. Cette erreur devrait être suivie d'autres messages d'erreur qui devraient vous diriger vers les causes de cette inconsistance.
En pratique, cette erreur signifie souvent que vous avez fait une erreur dans une des restrictions. Par exemple, une erreur typographique dans la restriction capability peut produire ça.