Algorithme de combinaison (Python)
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Algorithme de combinaison (Python)



  1. #1
    ScarlettCat

    Algorithme de combinaison (Python)


    ------

    Bonjour à tous !
    Je suis en master de bioinformatique et je demande aujourd'hui votre aide car j'ai du mal à concevoir un algorithme.
    Voila : j'ai conçu un tableau de la forme suivante :
    Récepteur | Ligand | Energie de liaison.
    Dans ce tableau j'ai 20 ligands et 20 récepteurs et je dois trouver la meilleure combinaison possible de couples ligands/récepteurs.
    Mon idée était de faire un algo qui crée toutes les combinaisons possibles de couples ligand récepteur (sachant que 1 ligand ne peut avoir qu'un récepteur et vice versa) et de sélectionner la meilleure (en faisant la somme de toutes les énergies de liaison à chaque combinaison). Sauf que voila : je bloque sur l'algo pour créer toutes les combinaisons possibles. ça ne m'a pas l'air spécialement dur mais je n'y arrive pas. Est ce que quelqu'un aurait une piste ou même des idées s'il vous plait ? Merci beaucoup par avance !

    -----

  2. #2
    sliders_alpha

    Re : Algorithme de combinaison (Python)

    Tu fais une boucle dans une boucle

    la premiere boucle va tourner sur chaque liguan, la deuxiemme sur chaque recepteur, au final tu vas obtenir

    ta premiere boucle arrive sur "liguan 1"
    ---- puis la deuxiemme a l'interieur itere sur tout les recepteurs
    ta premiere boucle arrive sur 'liguan 2'
    --- puis la deuxiemme a l'interieur itere sur tout les recepteurs
    etc

    ça donne ça:
    Code:
    ligans = [
        "ligan1",
        "ligan2",
        "ligan3",
        "ligan4",
        "ligan5",
        "ligan6",
        "ligan7",
        "ligan8",
        "ligan9",
        "ligan10",
        "ligan11",
        "ligan12",
        "ligan13",
        "ligan14",
        "ligan15",
        "ligan16",
        "ligan17",
        "ligan18",
        "ligan19",
        "ligan20"
    ]
    
    recepteurs = [
        "recepteur1",
        "recepteur2",
        "recepteur3",
        "recepteur4",
        "recepteur5",
        "recepteur6",
        "recepteur7",
        "recepteur8",
        "recepteur9",
        "recepteur10",
        "recepteur11",
        "recepteur12",
        "recepteur13",
        "recepteur14",
        "recepteur15",
        "recepteur16",
        "recepteur17",
        "recepteur18",
        "recepteur19",
        "recepteur20"
    ]
    
    for ligan in ligans:
        for recepteur in recepteurs:
            print("{} - {}".format(ligan, recepteur))
    Dernière modification par sliders_alpha ; 02/12/2020 à 14h58.

  3. #3
    ScarlettCat

    Re : Algorithme de combinaison (Python)

    Merci, mais ce n'était pas vraiment ça que je recherchais. J'ai finalement trouvé des fonctions qui font ce que je désire, je me permets de les laisser ici si un jour quelqu'un a besoin de la même chose que moi : https://docs.scipy.org/doc/scipy/ref...ssignment.html
    apparemment cela s'appelle l'algorithme Hongrois.

Discussions similaires

  1. Algorithme python
    Par Vet11 dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 09/03/2019, 18h29
  2. Algorithme Python
    Par mehdi_128 dans le forum Programmation et langages, Algorithmique
    Réponses: 6
    Dernier message: 14/10/2018, 23h15
  3. algorithme python
    Par ThomasDU dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 06/01/2018, 13h35
  4. Algorithme : Trouver la meilleur combinaison
    Par Totomakers dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 12/11/2015, 16h31
  5. Algorithme Python
    Par invite559d53a0 dans le forum Programmation et langages, Algorithmique
    Réponses: 9
    Dernier message: 24/03/2011, 06h03