cs_henrypower
Messages postés4Date d'inscriptionmardi 14 février 2006StatutMembreDernière intervention 2 septembre 2007
-
25 sept. 2006 à 20:29
super_toinou
Messages postés764Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention 8 mars 2011
-
29 sept. 2006 à 19:44
slt à vous
je développe en ce moment une application et j'aimerais avoir un programme java (optimal) qui prend en entrée une matrice de dimension n( n etant un paramètre) et retourne toutes les facons possibles de choisir une case par ligne.
vous avez bien compris qu'il s'agit d'un problème de permutation et qui deviens lent avec la taille de la matrice
plus tard il s'agit de coler des heuristiques
je vous remercie d'avance.
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 25 sept. 2006 à 21:14
Bah je vois pas vraiment quel algo pourrait être plus optimal qu'un algorithme gloutant (faisant les permutations une à une de ta matrice) puisque de toute façon, il y aura n^(n-1)^(n-2)^...^2 combinaisons possibles !
Bon c'est sûr que pour un n au dessus de 4, ca va faire long, mais vu le nombre de possibilité, c'est normal !
Fonction récursive par contre quasi-obligatoire si tu veux traîter des matrices de grandeurs inconnue.
Sinon, quel est le but de cet algorithme ? Selon les cas d'utilisation, peut-être qu'il existe une méthode qui se passerait de l'énumération de toutes les matrices possibles...
super_toinou
Messages postés764Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention 8 mars 20116 26 sept. 2006 à 10:32
darksidiou a raison, t es sur un pb a complexité exponnentielle, pour n assez grand tu pourra aller faire un foot le temps de trouver la réponse !!
Si tu veux coller des heuristiques dessus dans ce cas tu pourra squizzer un bon nombre de permutations possibles mais dans ce cas ton algo doit prendre cela en compte de suite sinon tu calculera toutes les solutions possibles dès le début et ensuite tu fera un filtre (ce qui n a pas gd interet)
j espere bien avoir comprit ton pb !
++ Toinou
cs_henrypower
Messages postés4Date d'inscriptionmardi 14 février 2006StatutMembreDernière intervention 2 septembre 2007 28 sept. 2006 à 20:16
slt à vous DARKSIDIOUS et Toinou
vous avez parfaitement raison. je sais que c'est un probleme de complexité exponentiel. j'ai essayez d'y rattacher des heuristiques mais j'ai pas pu trouver la bonne vu que je souhaite gérer les matrices de tailles quelconques. Pour etre plus clair mon problème est le suivant:
je dispose d'un matrice de dimension n*n et où chaque ligne et colonne contient aumoins un symbole "zéro". je cherche un algorithme donnant toutes les facons de former les n-uplets constitués des cordonnées(i et j; 1<=i,j<=n) des cases vérifiant les contraintes ci après:
- chaque case contient zéro
- dans un n-uplet aucun i, ni j ne se repète.
J'espere que vous me proposerez un code java pour mon problème.
merci d'avance