Ce concours vous interesserait-il ?

Ce concours vous interesserait-il ? - Algo - Programmation

Marsh Posté le 25-06-2004 à 17:40:35    

Bonjour tout le monde,
avant de lancer mon concours j'aimerai juste faire un sondage pour voir si des personnes sont intéressées.
 
Voila juste une explication grossière.
Le but n'est pas très compliqué, il consiste à placer des étiquettes sur une surface en deux dimensions de taille définie (cf. carte géographique) en minimisant les collisions. chaque étiquettes est décrite comment un rectangle (l, h) attaché à un point (x, y), elle peut être placée à quatre endroits différents par rapport au point : en haut à gauche, en haut à droite, en bas à gauche et en bas à droite.
 
La solution doit décrire la place de chaque étiquette par rapport à son point. Quelques Fichiers de données seront fournit pour pouvoir élaborer  son algorithme, au bout d'un certain temps (par exemple 3 semaines) un fichier de données correspondant au concours sera mis à disposition, vous aurez alors un délai avant de rendre vos solutions (par exemple 5 jours).
 
Celui qui a la solution ayant le moins de chevauchement gagne ^_^ (on verra pour la prise en compte du temps de calcul et de la mémoire utilisée dans la solution), le langage est libre.
 
Voici un exemple :
Placement initial (aléatoire):
http://pifou.myftp.org/~bordel/concours_etiquettes/exemple1a.png
 
Placement final (dans ce cas il n'y a plus de collision, mais en général il en reste):
http://pifou.myftp.org/~bordel/concours_etiquettes/exemple1b.png
 
Voila, ce n'est qu'un aperçu grossier, dites-moi ce que vous en pensez.


Message édité par Ummon le 26-06-2004 à 00:17:58
Reply

Marsh Posté le 25-06-2004 à 17:40:35   

Reply

Marsh Posté le 25-06-2004 à 17:42:07    

c'est tes devoirs en gros ?

Reply

Marsh Posté le 25-06-2004 à 17:45:11    

Absolument pas (je ne suis pas étudiant), simplement comme j'ai vu qu'il y avait de l'intérêt pour les concours je me suis dit que ca serait sympa d'en lancer un. Il me semble, de plus, assez intéressant.
D'ailleurs, libre à vous de faire des propositions au sujet de la donnée.
 
SVP, évitez les posts non constructif (cf. le deuxième).


Message édité par Ummon le 25-06-2004 à 17:47:31
Reply

Marsh Posté le 25-06-2004 à 17:47:43    

alors pourquoi tu veux pas qu'on le fasse en ruby ?
 
d'ailleurs, c'est purement un problème d'algo, on s'en tamponne bien que l'implémentation soit en C+
+

Reply

Marsh Posté le 25-06-2004 à 17:48:34    

J'ai écrit : "le langage est libre", c'est effectivement un problème d'algo.


Message édité par Ummon le 25-06-2004 à 17:50:09
Reply

Marsh Posté le 25-06-2004 à 18:18:12    

Cat. Algo [:itm]


Message édité par Joel F le 25-06-2004 à 18:25:04
Reply

Marsh Posté le 25-06-2004 à 18:18:47    

Le chevauchement se calcule comment ? C'est la surface de chaque etiquette qui chevauche une autre etiquette ?


Message édité par darkoli le 25-06-2004 à 18:20:22
Reply

Marsh Posté le 25-06-2004 à 19:33:19    

Détecter le chevauchement de surfaces rectengulaires alignées n'est pas tres compliqué ....


---------------
Cordialement, Xterm-in'Hate...
Reply

Marsh Posté le 25-06-2004 à 22:13:22    

xterminhate a écrit :

Détecter le chevauchement de surfaces rectengulaires alignées n'est pas tres compliqué ....

Oui mais il y a plusieurs façon de le faire. Soit au nombre de surface qui se chevauchent soit avec la surface des surface qui se chevauchent donc je voulais savoir ...

Reply

Marsh Posté le 25-06-2004 à 23:05:41    

Ok, je cromprends! Evaluer le niveau de chevauchement par la surface recouverte donnerait une estimation fine du resultat.


---------------
Cordialement, Xterm-in'Hate...
Reply

Marsh Posté le 25-06-2004 à 23:05:41   

Reply

Marsh Posté le 26-06-2004 à 00:17:42    

En fait c'est soit il y a chevauchement soit pas, le but étant de minimiser le nombre de chevauchement, il n'y a pas de calcul de surface.

Reply

Marsh Posté le 26-06-2004 à 00:18:32    


Oui c'est bon, j'ai modifié, dsl.

Reply

Marsh Posté le 26-06-2004 à 00:23:56    

Manque un "oui mais je ne sais pas où je vais trouver le temps" dans ton sondage :o

Reply

Marsh Posté le 26-06-2004 à 01:02:29    

Si ça va pas trop vite je m'essaierais bien.
Une idée pour le format du fichier de données ?
 
Ah oui et aussi je pense qu'il vaudrait mieux prendre en compte la surface de chevauchement : plusieurs petits chevauchements (genre 5% de la surface du cadre) ça reste plus lisible qu'un gros (genre 50 %)


Message édité par R3g le 26-06-2004 à 01:04:11

---------------
Au royaume des sourds, les borgnes sont sourds.
Reply

Marsh Posté le 26-06-2004 à 03:07:03    

Le but est quand même de garder une donnée la plus simple possible, on ne comptera que le nombre de chevauchement et nous n'entreront pas dans des calculs de surface (après ca devient le bordel  :pt1cable:).

Reply

Marsh Posté le 26-06-2004 à 08:49:31    

Format de sortie : un bitmap n/b ?


---------------
Cordialement, Xterm-in'Hate...
Reply

Marsh Posté le 26-06-2004 à 09:17:18    

bmp, t'es fou, pnm ou un truc simple

Reply

Marsh Posté le 26-06-2004 à 09:49:25    

Ca me parait intéressant dans le sens où ce problème NP-complet, donc on peut pas espérer avoir la solution exacte (enfin sauf si le nombre de points est très faible); à partir de là tout l'intérêt réside dans la recherche de la meilleure solution approchée !
 
PS : ceux qui ne voient pas l'intérêt du problème ne doivent pas connaitre grand chose en algorithmique :heink:


Message édité par Osama le 26-06-2004 à 13:06:07
Reply

Marsh Posté le 26-06-2004 à 10:27:52    

Taz a écrit :

bmp, t'es fou, pnm ou un truc simple


:jap:


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-06-2004 à 10:29:29    

Le format de sortie n'est pas obligatoirement du bitmap, tu peux très bien donner la solution sous la forme d'une série de positions (texte).
Je donnerai touts le détail lorsque, éventuellement, je lancerai le concours pour de vrai  :)

Reply

Marsh Posté le 26-06-2004 à 12:12:24    

Ouais moi je serais plus pour générer un fichier texte contenant la position de chaque cadre par rapport à son point (en haut à gauche, en bas à droite...). Combiné au fichier de données qui contient la position des points et la taille des cadres, ce sera facile de faire un petit prog indépendant pour afficher le résultat.


---------------
Au royaume des sourds, les borgnes sont sourds.
Reply

Marsh Posté le 28-06-2004 à 01:00:33    

j'ai réalisé un tel algo dans un projet. il etait question d'une cible, sur laquelle des points étaient placés aléatoirement autour de leur valeur en %
 
cela dit, il n'est bien sûr pas toujours possible de placer toutes les étiquettes convenablement (trop de points proches)
 
le langage est C# --> XML/SVG
 
sujet intéressant en effet


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 04-07-2004 à 21:53:42    

Osama a écrit :

Ca me parait intéressant dans le sens où ce problème NP-complet, donc on peut pas espérer avoir la solution exacte (enfin sauf si le nombre de points est très faible); à partir de là tout l'intérêt réside dans la recherche de la meilleure solution approchée !
 
PS : ceux qui ne voient pas l'intérêt du problème ne doivent pas connaitre grand chose en algorithmique :heink:


 
Ca ressemble en effet à un problème d'optimisation à résoudre avec l'algo de Métropolis.


Message édité par el muchacho le 04-07-2004 à 21:54:22
Reply

Marsh Posté le 04-07-2004 à 22:28:39    

tu pourrais filer la doc de ton TD au moins :
 
http://pifou.myftp.org/~bordel/TD/cga-PFLP.pdf
 
[:grat]


---------------
Hobby eien /人◕ ‿‿ ◕人\
Reply

Marsh Posté le 03-08-2004 à 14:59:49    

Bein ne te gène pas, tu peux la prendre (je pense que t'es quand même capable d'utiliser google pour trouver de la doc par toi même  :na:).
 
Bon vu le faible intérêt que mon problème à suscité, je ne pense pas lancer ce concours. N'hésiter pas à voter si vous êtes interessé, on ne sais jamais.


Message édité par Ummon le 03-08-2004 à 15:02:55
Reply

Marsh Posté le 03-08-2004 à 15:09:05    

Bah, moi ca m'aurait amusé qu'il soit lancé ce concours.
 
Le premier pb est que ce genre d'algo est traité en long en large et en travers par de nombreux bouquins. J'en ai un d'ailleurs dont le nom est "algorithmes en langage C", qui en parle et évalue différentes solutions (si jme rapelle bien). Donc, on va dire que les voies classiques sont dejà explorées et connues.
 
Le second pb est le temps ...

Reply

Marsh Posté le 03-08-2004 à 15:10:53    

je ne comprends pas...
tu as ta carte et tes rectangles, et tu veux les re-répartir?

Reply

Marsh Posté le 03-08-2004 à 15:20:03    

>moktar1er
tu as des points dont tu connais les coordonnées à étiqueter. les étiquettes sont representées sous la forme de rectangle (pour simplifier).
Le but est de placer chaque étiquette autour de son point de façon judicieuse pour minimiser le nombre de chevauchement global.
L'étiquette peut être placé en haut à gauche ou en haut à droite ou en bas à gauche ou en bas à droite par rapport à son point.
 
Peut-être que c'est plus facile si tu te représenter les points comme des villes sur une carte routière et les étiquettes comme les noms de ces villes. Le but est de faire un algo qui fait la carte routière la plus lisible.


Message édité par Ummon le 03-08-2004 à 15:23:57
Reply

Marsh Posté le 03-08-2004 à 15:22:07    

mouais OK [:gratgrat] je vois
et le but du concours? faire au plus rapide?

Reply

Marsh Posté le 03-08-2004 à 15:25:27    

Relit peut-être le premier post, le but premier n'est pas la rapidité mais la qualité de la solution.

Reply

Marsh Posté le 03-08-2004 à 15:27:06    

je préfère reformuler en posant des questions simple pour comprendre au mieux ;)
j'ai cru comprendre que tu voulais classer les solutions au moindre chevauchement mais... ne vaut-il pas plusieurs petits chevauchements minimes, insignifiants, qu'un seul où 2 boîtes se supperposent?

Reply

Marsh Posté le 03-08-2004 à 15:27:24    

Bon, vu qu'il y a quand même des motivés, je lancerai ce concours le week-end prochain :)

Reply

Marsh Posté le 03-08-2004 à 18:15:22    

on a le droit d'utiliser ton code source en vb6 ? :D


---------------
Hobby eien /人◕ ‿‿ ◕人\
Reply

Marsh Posté le 05-08-2004 à 01:28:03    

J'ai essayé de le faire avec un algorithme génétique
Ben ça marche plutôt bien

Reply

Marsh Posté le 05-08-2004 à 08:19:51    

oui

Reply

Marsh Posté le 09-08-2004 à 20:01:12    

Ummon a écrit :

Relit peut-être le premier post, le but premier n'est pas la rapidité mais la qualité de la solution.


 
 :lol: ... une petite recherche en depth-first, tu lances ca avec LA plus grosse machine que tu trouves sur la terre, et tu as la solution optimale :)  :lol:


---------------
Asus P5Q Pro | C2D E8400 3GHz@4GHz + Noctua NH-C12P | 2x2Go Patriot Extreme PC-8500 | GeForce GTX 460@Stock 1Go GLH | Crucial SSD M4 64Go Sata3
Reply

Marsh Posté le 09-08-2004 à 20:03:01    

oliv5 a écrit :

Bah, moi ca m'aurait amusé qu'il soit lancé ce concours.
 
Le premier pb est que ce genre d'algo est traité en long en large et en travers par de nombreux bouquins. J'en ai un d'ailleurs dont le nom est "algorithmes en langage C", qui en parle et évalue différentes solutions (si jme rapelle bien). Donc, on va dire que les voies classiques sont dejà explorées et connues.
 
Le second pb est le temps ...


 
+ 10²² ! . Suffit de lire un bon pdf, et tu as l'algo  :o . Aucun merite, aucun interet.   [:darkmavis tt]
 
c'est un "stupide" probleme de permutation. Sachant la place que peut prendre chacun des rectangles, le but consiste a trouve la permutation (placement de chaque rectangle) qui minimise le taux de chevauchement. Bref...des probleme de permutation (comme le fameux voyageur de commerce) y'en a a la pele !  :o


Message édité par Giz le 09-08-2004 à 20:06:37

---------------
Asus P5Q Pro | C2D E8400 3GHz@4GHz + Noctua NH-C12P | 2x2Go Patriot Extreme PC-8500 | GeForce GTX 460@Stock 1Go GLH | Crucial SSD M4 64Go Sata3
Reply

Marsh Posté le 09-08-2004 à 20:53:34    

c'est de la recherche operationnelle quoi [:spamafote]


---------------
Hobby eien /人◕ ‿‿ ◕人\
Reply

Marsh Posté le 09-08-2004 à 21:10:55    

Moi je peux pas, j'ai déjà des tas de trucs à faire :sweat:
 
Mais je trouve de problème sympa, donc je vote pour quand même :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed