Réduire une liste d’élements compatibles de manière optimale

Bonjour à tous,

Je suis un peu perdu avec mon sujet de stage. J’ai codé une grande partie de mon programme sur VBA et là je suis coincé.

Je vous explique mon problème. Arrivé à un moment le programme me sort une liste d’éléments exhaustive et certains éléments sont compatibles entre eux suivant une dizaine de critère.

Pour l’intant l’utilisateur fait ces regroupement manuellement mais il faudrait que ce soit fait de manière automatique.

Pour compliquer un peu plus la tâche il faudrait que ce soit de manière optimisée selon 2 critères, le nombre d’éléments équivalents minimal et une durée minimale qui faut atteindre pour le plus de ces éléments équivalents (car il y a une durée associée à tous les éléments).

Merci à tous pour vos réponses.

Bonjour

Quel joli sujet de stage !


"Et pour compliquer un peu plus la tâche" tu as oublié de nous fournir une PJ !

Bonjour, je ne peux malheureusement rien transmettre. Je cherche avant tout des idées à exploiter pour avancer.

Imaginez une liste de 20 items décrits par 10 critères avec trois valeur possibles ( on va dire oui, non et indifférent). A cause des valeurs indifférentes, la liste peut être réduite car elles sont compatibles avec « oui » et « non » (dans mon cas je passe de 20 à 5 lorsque je le fais manuellement).

Je voudrais déjà trouver toutes les combinaisons possibles et ensuite prendre la meilleure. Ce n’est pas très facile sans support j’en ai conscience

Bonjour

je ne peux malheureusement rien transmettre

Si il s'agit de "confidentialité" des données : saches que nous sommes nombreux (très nombreux) dans ton cas ! mais tu peux tout de même faire une copie de ton classeur avec des données "bidon" et/ou "anonymisées"

Si il s'agit de parce que nous partons de zéro, c'est un autre problème. Mais il faut tout de même bous donner une piste de ton idée du résultat, de structure des données...

Bonjour,

J’ai créé un fichier qui reprend ma structure et mes besoins. J’ai manqué d’imagination pour les critères.

Pour vous expliquer, disons que l’on souhaite commander des objets qui auront dix critères. Comme leur utilité est différente mais que les objets sont de base les même certains critères sont indiférents.

Pour vous donner un exemple vous avez besoin de peinture mais pas en même temps, l’une doit forcement être rouge et les autres n’ont pas d’importance. Vous allez donc commander une seule peinture rouge pour tout ce que vous avez à faire. Mais pour que ce soit rentable il faut que vous utilisiez cette penture plus de 75 jours mais elle n’est pas infini donc peut difficilement dépasser les 100/110 jours d’utilisation.

Mes « Objets » peuvent être associés entre eux selon des critères et on peut commannder qu’un seul objet à la place de n et c’est rentable si la durée d’utilisation est supérieure à 75 jours mais l’objet n’est plus utilisable après 110 jours. Il faut donc diminuer le nombre d’objet à commander en s’assurant que le plus possible soit rentable et ne casse pas.

J’ai rajouté des étapes pour détailler ma démarche.

Merci beaucoup

5forumbrobic.xlsx (15.58 Ko)

Bonjour

Je n'ai fait que lire tes explications...

Ca relève presque de l'IA ce truc. Non ?

Bonjour,

Oui je suis entièrement d’accord mais mon tuteur pense que c’est possible alors j’ai fais des recherches en vain et je me suis tourné vers ce forum pour essayer de trouver une solution.

Bonjour

Alors si ton tuteur a dit !

J'ouvre alors ta PJ pour voir un peu si il en sait autant que moi sur la faisabilité !

(..)

Voilà c'est fait. C'est ouvert !

J'aurais cependant besoin de quelques explications complémentaires !

Tu as dans ton classeur 4 onglets !

1) [BASE] ça c'est ok, ça ressemble vaguement à la base de données de ce que pourraient être la liste de tes objets !

2) [Etape 1]

3) [Etape 2]

4) [FINAL] qui je suppose d'après ton message doit être ce que nous voulons déduire de différents calculs "intelligents" pour trouver le meilleur compromis !

Les onglets [Etape 1] et [Etape 2] sont plus obscurs... Il n'y a aucune formule. Ce qui laisse à supposer que tu as fait le travail "mentalement" pour nous monter les différentes étapes... !

Certes !

Ce que je ne comprends pas non plus c'est : comment tu obtiens [FINAL] qui ne comporte lui non plus aucune formule... ! et surtout pourquoi nous arrivons à cette troncature de la [BASE] d'origine !

En somme comment sont définis les critères de sélection ?

Alors maintenant à ce que je crois comprendre (arrête moi si je me trompe) :

1) Depuis la [BASE]

2) Et pour chaque critères (les colonnes Critères 1 à 10) nous devons parcourir les "objets" pour trouver soit des "identiques" ou des "équivalents" à ce que nous cherchons

3) Si le critère est "indifférent" nous pouvons l'ignorer (ignorer cette colonne)

4) Et après

Bonsoir,

depuis la [base] on regroupe les objets compatibles entre eux suivant les critères lorsqu’ils sont identiques ou indifférents pour que la durée associée dépasse 75 jours sans atteindre plus de 110. C’est ce qu’on obtient à l’[étape 1] ensuite on uniformise pour avoir la description la plus détaillée des objets équivalents.

[étape 2] et enfin on supprime les doublons pour arriver au [final] avec la somme des durées associées ( il y a une formule ici )

Pour les critères c’est ceux qui caractérisent l’objet précisément. Je ne l’ai ai pas nommé parce que je pensais que c’était plus simple comme ça.

C’est sur que sans les explications ça devait pas être évident, pardon et merci pour votre aide.

Bonjour

Ca commence à devenir un tout petit peu plus clair (ou disons moins obscur)

Tu dis

pour que la durée associée dépasse 75 jours sans atteindre plus de 110

ces jours sont toujours fixes à ces valeurs ?

Par contre

Pour les critères c’est ceux qui caractérisent l’objet précisément

si on veut mais où est choisi l'objet ? ou bien faut il faire "la détermination" à chaque fois sur l'ensemble des objets ?

Bonjour, les jours et la description des objets sont déterminés en amont par mon programme, ils réponde à une demande au départ du programme.

Donc les jours et la description varient en fonction de ce qu’on lui demande.

Je n’ai pas très bien compris votre deuxième question.

Merci

Bonjour

Ok, il faut donc considérer que la PJ est une "version limité" de l'outil réel ?!

Finalement il semble que la réponse à la 2ème question soit incluse dans la première ! Le choix de "l'objet" est determiné en amont dans la "vraie version" de l'outil !?

Oui exactement, il est trop conséquent pour pouvoir modifier les informations et les valeurs qui s’y trouvent et vous l’envoyer. En effet c’est uniquement une partie de celui ci qui est réalisée par l’utilisateur manuellement.

Les valeurs qui y sont changeront a la prochaine utilisation ainsi que le nombre d’objet.

Nous voulons l’automatiser afin de réduire le travail de son utilisateur.

(..)

Ok... Je continue à mieux comprendre... !

Alors pour l'instant

Bonjour, de mon côté je ne trouve toujours pas de solution et je n’ai pas assez d’expérience en vba (c’est la première fois que je l’utilise) pour savoir ce qui est possible.

Je voulais savoir si vous aviez eu quelques idées ppir démarrer?

Merci

Rechercher des sujets similaires à "reduire liste elements compatibles maniere optimale"