Projet 2007/2008 2ème année de la spécialité I2A
(Informatique Avancée et Applications)
Option ARO
Pourquoi cette page ?
Cette page présente le projet ARO de cette année 2007/2008.
Elle contient un ensemble d'informations sur l'objectif du projet ainsi que sur les membres du groupe qui ont réalisé ce travail.
Toutes ces informations sont accessible en parcourant cette page ou à partir du menu de gauche.
Objectif du projet
Lobjectif de ce projet est de créer un logiciel pour générer la programmation musicale d'une station Radio ( qu'on va appeler par la suite 'Client').
Cette programmation doit satisfaire certaines contraintes et prendre en compte le délai minimum entre deux diffusions d'un même titre ou d'un même chanteur.
- L'écart jour et l'écart veille doivent être les plus grand possibles. Le client souhaite pouvoir fournir une base de données à l'application, contenant le format, les titres et les catégories qu'il aura défini. Il pourra récupérer par la suite la liste des titres qu'il passera sur les ondes (s'il le souhaite il peut enregistrer le résultat). Notre logiciel doit présenter une interface graphique simple d'utilisation et prendre en compte les contraintes définies par le client :
- Considérant qu'une case est un titre, pour chaque case le titre choisi est autorisé par le format pour cette case.
- Chaque titre apparaît le nombre de fois spécifié par sa catégorie.
- Les contraintes d'enchaînement doivent être satisfaites. C'est à dire que deux titres d'une langue spécifié, ne doivent pas se suivre dans la programmation.
- Respecter le quota d'apparition concernant une caractéristique d'un titre sur une période donnée.
- Afin de pouvoir modifier l'importance relative de l'écart jour et de l'écart veille, l'utilisateur souhaite pouvoir régler deux paramètres p et q et obtenir ainsi des solutions qui maximisent l'expression : p EJ + q EV
- L'application consiste à organiser et optimiser la liste des morceaux à diffuser sur la période choisie par l'utilisateur .
- L'utilisateur doit avoir le choix de l'algorithme à utiliser pour la résolution. Il faut que l'application crée une représentation du format au plus proche de ce que serait la planification réelle.
- En particulier, le format précise pour chaque case un catégorie. On estime la durée d'une case par la durée moyenne des titres de sa catégorie. La somme des durées estimées des cases d'une heure doit être à peu près égale à 60 minutes.
Le Groupe du projet
Encadrants :
M. Yann VAXÈS M. Karim NOUIOUA |
Groupes de Travail
Groupe 1 (Recherche locale à grand voisinage)
|
Groupe 2 ( Recherche locale à petit voisinage)
|
|
|
Interface de L'application
Cette partie présente l'interface utilisateur ainsi qu'une description fonctionnelle de l'application.
La fenêtre principale
La fenêtre principale est constituée de plusieurs panneaux apportant des informations utiles à l'utilisateur, ainsi que d'une barre de menu permettant d'effectuer des actions.
Le panneau d'information indique à l'utilisateur les paramètres du moment :
- L'écart jour choisit.
- L'écart veille choisit.
- Le fichier contenant les informations qu'il souhaite.
- L'algorithme avec lequel le logiciel va fonctionner.
L'historique consiste à afficher toutes les actions effectuées par l'utilisateur. Ceci peut être toujours utile de retrouver les paramètres d'un jeu de test, ou de connaître à quel instant l'application détecte des erreurs.
Dans cette interface, le menu est composé de trois champs:
- Fichier
- Option
- Aide
Le menu Fichier permet de sélectionner le fichier que l'on souhaite charger mais aussi de quitter l'application.
Le menu Option permet de modifier les paramètres du logiciel et de rafraîchir l'historique, en d'autre termes de supprimer tout ce qu'il y a écrit dans la fenêtre historique. Le menu d'aide contient d'une part le manuel d'utilisation et d'autre part le " à propos ".
Fichier
Sélectionner un Fichier
Pour sélectionner un fichier, une nouvelle fenêtre apparaît et va nous permettre de choisir le fichier à charger. Celui ci doit obligatoirement avoir l'extension " .xml ".
La sélection d'un fichier XML permet l'activation du bouton de la programmation, dans le cas contraire ce bouton reste désactivé. Pour lancer la programmation il suffit ensuite de cliquer sur programmation.
Quitter
Arrêt définitif de l'application.
Option
La modification des paramètres se fait via une nouvelle fenêtre qui permet à l'utilisateur de modifier plusieurs champs. Les coefficients des écarts jour et veille peuvent être modifiés à partir d'un slider. De plus, l'utilisateur peut choisir un algorithme à utiliser parmi la liste proposée, en cliquant sur le radio bouton correspondant.
Commune
On peut définir les paramètre d'écart jour et d'écart veille grâce au slider mis à disposition, qui règle en pourcentage l'importance d'un paramètre par rapport à l'autre. Leurs valeurs sont indiquées sur le côtés.
Plne
Dans l'option de la plne on retrouve les réglages suivant :
Nombre d'itérations : représente le nombre d'itération maximum que l'algorithme de plne devra effectuer avant de se terminer. Plus ce nombre est grand, plus le temps d'éxécution de l'algorithme sera long mais plus le résultat sera affiné, et la programmation musicale de meilleur qualité.
Limite de temps : est la limite de temps que l'on impose à chaque boucle qu'effectue l'algorithme s'appuyant sur la plne. En effet le solveur utilisé peut parfois prendre énormément de temps pour trouver une solution optimale, il est donc utile de limiter son temps de recherche afin de repartir sur de meilleurs base. Il est bon de laisser un certains temps tout de même car si celui ci est trop court, le solveur n'aura jamais le temps de trouver une solution.
Nombre de cases vides : correspond au nombre total de cases du format qui vont être vidée à chaque itération de l'algorithme. Libérer une case signifie que l'on retire le titre correspondant à cette case, afin de pouvoir en affecter un nouveau à partir de la résolution du problème. C'est comme si l'on rendait cette case vide comme une variable. Les cases à libérer peuvent être choisi de manière aléatoire ou de manière ciblé. Plus ce nombre augmente plus le solveur mettra du temps à résoudre le problème. Mais si ce nombre est trop petit alors le temps de convergence sera aussi très lent. Le bon compromis trouvé est de vidé environ une dizaine de cases.
Nombre de cases ciblées : correspond au nombre de case qui vont être vidé de manière ciblé.
Global
itGlob (renommé en tpsGlob) : Le temps maximum que prendra l'algorithme global.
ItStable : Dans la descente, le nombre d'itérations que l'on se permet de faire sans diminuer la fonction objectif (l'objectif stagne).
TpsDesc : Le temps maximum que prend une descente.
Ppermute : La probabilité de prendre le mouvement de permutation pendant la descente.
Psimple : La probabilité de prendre le mouvement de simple pendant la descente.
Pinv: La probabilité de prendre le mouvement d'inversion.
Descente
kej : l'écart jour minimal qu'on veut obtenir.
kev : l'écart jour minimal qu'on veut obtenir.
Pour valider les changements effectués cliquer sur valider sinon sur annuler. Lors de la validation, les valeurs dans certains champs sont vérifiées, ce qui signifie que l'on ne peut pas non plus rentrer n'importe qu'elle valeur. S'il vient à y avoir une erreur cela est indiqué par un message.
Aide
A propos
Il permet de visualiser le groupe de travail de l'application ainsi que les encadrants du projet.
Manuel d'utilisation
Il présente les différentes possibilités qu'offre le logiciel et un support en cas de problème. Il donne les caractéristiques du programme.
La fenêtre de programmation
- Lors du premier lancement de la fenêtre, l'utilisateur peut soit charger le fichier qu'il avait sélectionné, soit retourner sur la fenêtre principale. S'il le souhaite, il peut recharger un autre fichier en le sélectionnant de nouveau à partir de la fenêtre principale.
La fenêtre programmation contient des boutons qui permettent à l'utilisateur de choisir le jour et la plage horaire à laquelle il souhaite afficher sa programmation. - Un panneau d'information met à jour les information concernant la plage horaire sélectionné par l'utilisateur, ainsi que les champs Ev et Ej donnent les résultats donnés par les algorithmes sur l'écart jour et l'écart veilles.
Le champ Format est une table contenant un numéro, un titre, une catégorie et une durée . Cela correspond à la programmation que souhaite l'utilisateur. - Le champ Résultat est le résultat de la programmation musicale. Il permet de visualiser de manière graphique l'ensemble des titres qui doivent être diffuser.
- Le programme indique si le chargement a échoué par une petite fenêtre signalant l'erreur. Une fois le fichier chargé, une table dans le cadre format aparaît. Il s'agit du format qui est la donnée d'entrée du problème. On peut alors lancer l'algorithme, ou bien entendu changer les paramètres à partir de la fenêtre principale.
Une fois l'algorithme terminé, on obtient donc une vue avec les deux tables qui peuvent être visualisées de manière synchrone. Les cases ayant le même chanteur à une distance de l'écart jour minimum sont mise en valeur par la couleur rouge. Les cases verte correspondent aux case, qui sont proche de cette écart jour minimum, ceci afin de vérifier que l'algorithme ne se contente pas seulement d'agrandir l'écart jour minimum entre deux case, mais qu'il le rend le plus grand possible pour l'ensemble du format.
Le bouton sauver sert à enregistrer le fichier résultat de la programmation musicale. Là encore un File chooser apparaît afin que l'on puisse enregistrer le fichier où que l'on souhaite.
Les résultats obtenus
Le champ Résultat est le résultat de la programmation musicale. Il permet de visualiser de manière graphique l'ensemble des titres qui doivent être diffuser.
Graphes des solutions optimales obtenus
Resultat 2
Resultat 3
Conclusion & Perspectives
- Au terme de ce projet d'un mois au cours duquel nous avons travaillé en groupe de huit, nous avons obtenu un résultat satisfaisant qui répond à la problématique demandée. Ce dit résultat est probablement perfectible mais est néanmoins honnête.
- La recherche locale à petit voisinage est plus rapide que celle à grand voisinage en utilisant la PLNE. On pourrait obtenir des résultats meilleurs en utilisant les résultats de la recherche locale à petit voisinage comme solution initiale, pour le grand voisinage.
Rendu du projet et Dernière Version du logiciel produit Radio-Musica® le 27 Mars 2008
Copyright © 2008 Les contributeurs du Projet Radio-Musica.