Programmation branch and bound en C/C++
Fermé
ania_10
Messages postés
1
Date d'inscription
samedi 7 janvier 2006
Statut
Membre
Dernière intervention
7 janvier 2006
-
7 janv. 2006 à 09:32
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 - 15 avril 2008 à 19:18
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 - 15 avril 2008 à 19:18
A voir également:
- Programmation branch and bound en C/C++
- Application de programmation - Guide
- Disk boot failure insert system disk and press enter - Guide
- Hp scan and capture - Forum scanner
- Mouse and keyboard recorder - Télécharger - Divers Utilitaires
4 réponses
salut ania
on est à la recherche de la même chose
état initial , état final n'est pas ?
mais si je trouve quoi que ce soit je te tiendrais au courant.
on est à la recherche de la même chose
état initial , état final n'est pas ?
mais si je trouve quoi que ce soit je te tiendrais au courant.
mamiemando
Messages postés
33401
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
28 novembre 2024
7 804
29 janv. 2006 à 21:20
29 janv. 2006 à 21:20
Moi je l'ai fait dans ma jeunesse et le plus simple c'est encore de faire un appel récursif à ta fonction d'exploration de l'arbre de recherche.
Bien penser à lui passer en paramètre la valeur de la solution optimale f(s*) (borne inférieure) trouvée jusqu'ici et le vecteur solution courant s. Ne pas perdre de vue que l'ordre dans lequel on affecte les variable peut avoir une grande influence sur la rapidité de l'algo(utiliser une heuristique pour bien la choisir)
Idéalement trouver un critère de coupure pour accélerer la recherche.
Attention à ne pas se planter avec les pointeurs. Il ne faut pas perdre de vue que lorsqu'on appelle une fonction en C (ou en C++), les paramètres passés à la fonction sont une copie des variables, ce qui permet d'éviter de se prendre la tête sur comment allouer la solution courante.
Ca doit donner un code qui a à peu près cette structure (à vérifier !).
Bonne chance
Bien penser à lui passer en paramètre la valeur de la solution optimale f(s*) (borne inférieure) trouvée jusqu'ici et le vecteur solution courant s. Ne pas perdre de vue que l'ordre dans lequel on affecte les variable peut avoir une grande influence sur la rapidité de l'algo(utiliser une heuristique pour bien la choisir)
Idéalement trouver un critère de coupure pour accélerer la recherche.
Attention à ne pas se planter avec les pointeurs. Il ne faut pas perdre de vue que lorsqu'on appelle une fonction en C (ou en C++), les paramètres passés à la fonction sont une copie des variables, ce qui permet d'éviter de se prendre la tête sur comment allouer la solution courante.
Ca doit donner un code qui a à peu près cette structure (à vérifier !).
//solution est une structure décrivant le vecteur solution à //caractériser. Dans cette structure il faut pouvoir savoir à tout //moment quelle variable n'ont pas encore été affectée (ie n'ont pas //été soumises à une séparation dans les noeud de recherche //supérieur) solution branch_and_bound(){ solution s_opt=solution_vide; int f_s_opt=+infini; //pour un pb de minimisation solution s=solution_vide; explorer noeud(f_s_opt,&s_opt,s); return s_opt; } void explorer noeud(int *f_s_opt,solution *s_opt,solution s){ tester critère de coupure sur s pour chaque variable non affectée si{ choisir variable candidate si pour chaque valeur xi de di (domaine de la variable si){ explorer(f_s_opt,s*,s <- s(si = xi)) } } si (f(s)<f(s*)){ free(s_opt); *s_opt=s; *f_s_opt=f(s); } }
Bonne chance
alias_bella
Messages postés
2
Date d'inscription
mardi 15 avril 2008
Statut
Membre
Dernière intervention
15 avril 2008
15 avril 2008 à 14:46
15 avril 2008 à 14:46
Bonjour à tous;
Je voudrais savoir si l'un de vous n'aurait pas déja programmé Branch and bound en C#.Net ou visual C++.Net; et plus particulièrement une aplication sut un probleme d'ordonnancement de tâches avec plusieurs processeurs.
Merci beaucoup à tous ceux qui pourrait m'accorder un peu de leur temps.
Je voudrais savoir si l'un de vous n'aurait pas déja programmé Branch and bound en C#.Net ou visual C++.Net; et plus particulièrement une aplication sut un probleme d'ordonnancement de tâches avec plusieurs processeurs.
Merci beaucoup à tous ceux qui pourrait m'accorder un peu de leur temps.
mamiemando
Messages postés
33401
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
28 novembre 2024
7 804
15 avril 2008 à 19:18
15 avril 2008 à 19:18
Il serait plus logique d'utiliser une API C++ genre COIN-OR ou CPLEX. Sinon tu recodes ton propre branch and bound.