algorithme pour réseau d'échange numismatique

algorithme pour réseau d'échange numismatique - Algo - Programmation

Marsh Posté le 15-02-2014 à 18:39:49    

Bonjour à tous
 
je suis étudiant et j'ai choisi, comme projet d'étude, de batir un algorithme pour un réseau d'échange numismatique. L'idée est de partir d'une base de données comprenant pour chaque "individu" du réseau : 5 Offres (pièces et billets) + 5 Demandes (pièces et billets) + la valeur en € pour chaque pièce ou billet potentiellement échangeable. Ce qui donne pour un individu AAA :
 
***** Offres ********** Valeur ******
**** xxxxxxx ********** 30 ********
**** yyyyyyy ********** 80 ********
**** zzzzzzz ********** 40 ********
**** uuuuuuu ********** 10 ********
**** wwwww ********** 125 ********
 
** Demandes ******** Valeur ******
**** aaaaaaa ********** 10 ********
**** bbbbbbb ********** 20 ********
**** ddddddd ********** 05 ********
**** ccccccc ********** 08 ********
**** eeeeeee ********** 25 ********

Objet de l'algo
:  
suite à des requếtes telles que celles-ci :
-1 : BBB offre via un(des) échange(s) et pour une valeur de 200 une piéce "jjjjjjj"
-2 : CCC demande via un(des) échange(s) et pour une valeur de 100 un billet "ssssss"
l'algo établit une boucle ou des boucles multiples assurant la "réciprocité" de l'échange.
 
Exemples avec des montants identiques dans les échanges "en boucle" :
 
- scénario 1 : BBB ---> pièce 200 ---> DDD ----> billet 200 --->EEE ---> pièce 200 ---> FFF ---> billet 200 ---> BBB
- scénario 2 : CCC <--- billet 100 <--- JJJ <---- billet 100 <---KKK <--- pièce 100 <--- LLL <--- pièce 100 <--- BBB
 
 
Exemples avec des montants différents dans les échanges "en boucle" :
 
- scénario 1bis : BBB ---> pièce 200 ---> FFF -|-> billet 150 ---> BBB
...................................................................|-> pièce 50 ---> GGG ---> billet 50 ---> BBB
 
- scénario 2bis : CCC <--- billet 100 <--- FFF <-|- pièce 80 <--- CCC
....................................................................|- pièce 20 <--- NNN <--- billet 20 <--- CCC
 
Quelqu'un aurait-il une idée pour bien démarrer dans cette aventure ? Merci !  :)  ;)  

Reply

Marsh Posté le 15-02-2014 à 18:39:49   

Reply

Marsh Posté le 17-02-2014 à 11:59:31    

Elle est où la question de programmation hormis celle de faire le travail à ta place :??:
 
Tu prends le langage de dév que tu veux (C/C++, java, Python, PHP...), tu définis une structure pour tes données (fichier csv, fichier XML, base de données...) puis tu implémentes la fonction d'échange avec les règles de gestion qui vont bien.
 
On t'aidera ici que si tu postes ton code et que tu nous pose une question sur un point précis de ton code ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 17-02-2014 à 12:09:31    

heu ... ma demande n'est pas que quelqu'un fasse le boulot à ma palce !  
Elle est de savoir quelle serait la meilleure "approche algorithmique" possible pour que je puisse partir sur les bonnes bases dés le départ ... Le code, c'est ce qui suit l'algorithmie.

Reply

Marsh Posté le 01-03-2014 à 18:40:02    

pas de spécialistes des "algos" pour m'aiguiller sur ce forum ?
Si la réponse est NON, quel forum vous me conseillerez ? Merci !

Reply

Marsh Posté le 01-03-2014 à 22:58:14    

Je me demande si en se basant sur la théorie des graphes Hamiltonien, ça pourrait pas le faire : http://fr.wikipedia.org/wiki/Graphe_hamiltonien
 
Autre solution, sans doute plus simple : le calcul du plus court chemin (dans ton cas, le plus court chemin entre 2 monnaies) :  http://fr.wikipedia.org/wiki/Algorithme_de_Dijkstra


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 03-03-2014 à 18:02:01    

merci beaucoup Rufo de t'interésser à mon problème. j'ai l'impression qu'effectivement ça ressemble à ce qu'il faudrait faire, sauf que que la logique est ici celle "du bon chemin parce que correspondant au(x) bon(s) montant(s)" et non pas celle "du plus court chemin". En fait, la logique veut qu'on se fiche de la longueur du chemin : peu importe qu'il y ait une suite de 3, 5 ou 10 échanges. L'essentiel est que ça "reboucle" au final sur celui qui a initié l'échange ... merci encore ! Je continue de réfléchir !!!


Message édité par ab02 le 03-03-2014 à 18:02:52
Reply

Marsh Posté le 04-03-2014 à 10:55:02    

Regardes alors du côté de l'algo de Floyd qui permet de calculer l'ensemble des plus courts chemin entre tous les sommets d'un graphe :
http://fr.wikipedia.org/wiki/Algor [...] d-Warshall


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 17-03-2014 à 16:53:05    

c'est trop compliqué ! je vais me planter et avoir une note trop minable !!!
je vais proposer un "problème" moins délicat à résoudre. Merci à tous et à rufo en particulier ;-)

Reply

Sujets relatifs:

Leave a Replay

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