Déterminer tour de rôle par paire

Résolu/Fermé
Coyotte71 Messages postés 4 Date d'inscription lundi 20 juin 2016 Statut Membre Dernière intervention 22 juin 2016 - 20 juin 2016 à 16:01
Coyotte71 Messages postés 4 Date d'inscription lundi 20 juin 2016 Statut Membre Dernière intervention 22 juin 2016 - 22 juin 2016 à 14:41
Bonjour,

Voici mon problème:
10 personnes (abréviations AA, AB, AC, ...) devant être désignées par paire.
Le taux d'activité doit être pris en considération (un employé à 100% sera désigné 2 fois plus qu'une personne à 50%).
Il y a 6 personnes à 100%, 2 à 80%, 1 à 50% et 1 à 20%.
Les doublons ne sont bien entendu pas possibles.

Le fichier excel devra donner la liste de toutes les paires possibles, en respectant les taux d'activités ci-dessus.

Le résultat devrait ressembler à ceci:
ligne 1, colonnes A et B: AA et AB
ligne 2, colonnes A et B: AB et AC
etc...

Idéalement, l'ordre des lignes viendrait en aléatoire pour éviter de mettre AA dans toutes les lignes du début.

Merci pour votre aide.
Cordialement.

8 réponses

Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096
20 juin 2016 à 17:10
Bonjour.

1) Peut-on savoir à quoi sert ce calcul ?
2) Quelle est ta version d'Excel ?
3) Peux-tu envoyer ce que tu as commencé à faire comme fichier ?
 1) Tu vas dans https://www.cjoint.com/ 
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier (8192 Ko maxi)
3) Tu défiles vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse tu fais "Coller".
=>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
0
Coyotte71 Messages postés 4 Date d'inscription lundi 20 juin 2016 Statut Membre Dernière intervention 22 juin 2016
20 juin 2016 à 17:28
Bonjour Raymond,

1) c'est un cas bien réel. Je cherche à former des paires de personnes avec une répartition équitable tout en tenant compte du taux d'activité de ces personnes. Par exemple, un 100% devra avoir le même nombre d'occurrences qu'une autre personne à 100%, mais 2 fois plus qu'une à 50% ou 1.25 fois plus qu'une à 80%. On devrait arriver à environ 80 lignes pour faire le tour.

2) ma version est excel 2010

3) voici le début; à noter que j'ai utilisé des prénoms au lieu des codes AA, AB, ... indiqués dans mon premier message.

https://www.cjoint.com/c/FFupBoM6ZFA


Merci!
0
Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096
20 juin 2016 à 19:22
Il manque une donnée importante, combien de "tours de rôle" ou désignations ? Tu sembles indiquer 80 ; est-ce une simple évaluation ?
Parce que si tu ne veux pas de doublon, le nombre de combinaisons est donné par la formule =COMBIN(10;2) qui a pour résultat 45, chacun ayant un tour de rôle avec les 9 autres.
Et je ne vois pas bien comment on peut là-dedans favoriser les taux d'activité !
D'après tes conditions, il faudrait que Gilles, Robert, J-Claude, Michel, Roland et Bernard soient de garde 5 fois plus souvent que Nathalie et 2 fois plus souvent qu'Anne.
Il n'est pas possible de faire exactement cette répartition.
La plus proche approximation est de 6 gardes pour les 6 premiers, 3 gardes pour Laurence et Gérard, 2 pour Anne et une pour Nathalie.
Tout cela, bien entendu, se fait parfaitement avec un crayon et du papier, Excel n'ayant pas à intervenir ...
0
Merci pour ta prompte réponse.
Les 80 sont effectivement une simple évaluation et je reconnais que le crayon et le papier sont une option, mais admettons que la situation se représente avec une population plus grande, excel est tout de même d'une aide précieuse!

Une condition que j'ai peut-être mal expliquée est que chaque personne doit avoir oeuvré avec chacun des autres et que le nombre total de garde peut être estimé à environ 200. Donc pour reprendre l'exemple de Nathalie, elle doit faire au minimum 9 gardes, soit une avec chacune des autres personnes. Si l'on prend 20% = 9 gardes, donc 50% =27.5 gardes => pas possible.
Alors prenons 20% = 18 gardes, 50% = 45 gardes, 80% = 72 gardes et 100% = 90 gardes.

J'espère que mes explications sont plus claires maintenant.

Merci de ton intérêt pour ce problème.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096
21 juin 2016 à 03:48
Mes explications et commentaires figurent dans le fichier https://www.cjoint.com/c/FFvbWpEZaGm

Au revoir.
0
Coyotte71 Messages postés 4 Date d'inscription lundi 20 juin 2016 Statut Membre Dernière intervention 22 juin 2016
21 juin 2016 à 08:36
Merci Raymond d'avoir consacré tout ce temps à mon problème!
Petite précision au sujet des doublons: je voulais dire que bien entendu, Gilles ne pouvait pas être en paire avec Gilles... mais retrouver plusieurs fois la même paire n'est pas un problème.

Bien que tes tableaux sont très beaux, j'imaginais que la solution aurait pu être trouvée avec un automatisme, avec VBA ou non. Peut-être suis-je trop optimiste...

Encore merci à Raymond.
0
Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096
21 juin 2016 à 17:30
Avec VBA ? Possible ; je n'en sais rien, puisque je ne pratique pas ce langage ...

D'une manière générale, les tableurs comme Excel savent calculer combien il y a de combinaisons et de permutations, mais n'éditent pas la liste des résultats.

Espérons que d'autres membres de CCM t'apporteront une meilleure façon de procéder ...
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
Modifié par JvDo le 22/06/2016 à 09:18
Bonjour à tous,

Grâce à tes échanges avec Raymond Pentier, je crois que je commence à comprendre ton problème.

1) tu veux que le plus petit taux d'activité présente au moins 9 paires pour que Nathalie soit appairée avec chaque autre personne au moins une fois.

2) tu as une contrainte d'intégrité qui fait que le nombre de paires pour Nathalie doit être supérieur ou égal à 10 et être pair. (sinon tu as des demis pour Anne)

3) tu veux la liste des paires

Je ne sais pas si tu veux une liste solution ou plusieurs listes ou toutes (tu peux oublier le "toutes")
J'ai imaginé que tu voulais que ta solution soit équilibrée, au sens d'un nombre d’appariement proche de la moyenne.

Partant de là, et du fait de la présence d'un taux de 50% pour Anne, les instances où Nathalie a un nombre de paires qui n'est pas un multiple de 4 ne seront pas faisables. (lemme des poignées de mains)

J'ai introduit ces paramètres dans un solveur et voilà quelques solutions.
(J'ai essayé avec le solveur d'excel, mais je ne dois pas savoir l'utiliser car il a rendu l'âme : trop complexe ou pas de solution trouvée).

GLPK et Cplex sont plus coopératifs.


le fichier : https://www.cjoint.com/c/FFwgXKUVdHh

Cordialement
0
Coyotte71 Messages postés 4 Date d'inscription lundi 20 juin 2016 Statut Membre Dernière intervention 22 juin 2016
22 juin 2016 à 14:41
Bonjour JvDo,

C'est impeccable, exactement ce que je voulais.
Un grand merci pour le temps consacré!
Cordialement.
0