IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Statistiques, Data Mining et Data Science Discussion :

Mathématique Optimisation algorithme


Sujet :

Statistiques, Data Mining et Data Science

  1. #21
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 632
    Par défaut
    Bonjour tbc92,

    Citation Envoyé par tbc92 Voir le message
    ...il y a une démarche qui peut être utile :
    - Partir de la solution avec 18 lignes présentée plus haut.
    - Partant de cette solution, supprimer 5 ou 6 lignes aléatoirement (ou les lignes qui contiennent des 4 et des 5 mais pas de 8 par exemple ) et refaire une recherche exhaustive pour voir ce qu'on trouve.
    - Et boucler ...
    Ta proposition ressemble à du recuit simulé : on chauffe un peu et on laisse reposer (recherche standard). C'est une technique d'optimisation heuristique qui peut marcher, ou pas. Je crois qu'il faudrait qualifier les résultats pour savoir s'il vaut mieux de repartir de la dernière cuisson ou de l'avant dernière (niveau atteint puis écart-type des profils ?).

    Ce qui me mobilise, en pure perte jusqu'alors, c'est de trouver une limite théorique. Je trouve toujours 29. Un exemple, le nombre de paires dans un octet est 28 ce qui fait 29 cas avec l'octet lui-même.

    Citation Envoyé par tbc92 Voir le message
    ...C'est quoi le profil dans ce contexte ? Ici, j'ai le 39 et le 18 qui apparaissent 4 fois, j'ai le 38 qui apparaît 5 fois .... et j'ai le 11 et le 12 qui apparaissent 6 fois, j'ai le 13 qui apparaît 8 fois. Le profil est donc 4.4.5.....6.6.8
    Nom : 29x8 Etapes 1 à 11.png
Affichages : 161
Taille : 48,0 Ko
    Le profil que j'utilise ressemble plutôt à 29 sous ensembles en quadrature avec les 29 ensembles recherchés. Les sous-ensembles des rangées ayant une même position jusqu'au niveau en cours (non compris) correspondent à tes équivalents topologiques. Cela me sert à éviter les essais inutiles. Mais les doublons, assez nombreux au début, tendent rapidement vers 0 et je me demande si le jeu en vaut la chandelle.
    Nom : 29x8 Profils.png
Affichages : 168
Taille : 51,9 Ko
    Le tableau des cardinaux de ces ensembles reboucle avec ta propre définition de profil.

    Salut

  2. #22
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2024
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2024
    Messages : 13
    Par défaut
    Citation Envoyé par IME14 Voir le message
    Bonjour

    Je cherche à résoudre le problème suivant :

    Objectif :

    Générer une matrice M de dimensions 29×8 où :
    Chaque ligne de la matrice est un sous-ensemble de 8 entiers distincts choisis parmi les entiers de 1 à 29.
    Chaque paire de lignes de la matrice doit partager exactement deux éléments en commun.

    Contraintes :

    Chaque ligne doit contenir 8 valeurs distinctes.
    Chaque paire de lignes doit avoir exactement deux éléments en commun.
    La solution doit utiliser uniquement les valeurs de 1 à 29.

    Sortie attendue :

    Une matrice 29×8 respectant les contraintes ou un message indiquant qu'aucune solution n'existe.

    Ce que je demande :
    Je souhaite obtenir :

    - Un code Python ou dans tout autre langage qui peut générer une solution rapidement.
    - Si vous connaissez une solution algorithmique ou théorique à ce problème, je serais heureux que vous la partagiez.

    Pour info j'ai trouvé la solution pour une matrice de dimensions 16×6 mais le code il se bloque au niveau de 29*8


    Voici le code python qui génère une matrice de dimensions 16×6 avec les contraintes suivantes :

    1-Chaque ligne contient 6 valeurs distinctes.
    2-Chaque paire de lignes partage exactement 2 éléments.
    3-Les valeurs utilisées sont comprises entre 1 et 16.

    Cependant, lorsqu'on essaie d'étendre ce code pour générer une matrice de 29×8 en utilisant les valeurs de 1 à 29, le code n'arrive pas à trouver une solution valide.
    --------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    import random
    import pandas as pd
     
    # Définition des paramètres
    C = list(range(1, 17))
    NUM_ROWS = 16
    NUM_COLS = 6
     
    # Initialisation de la matrice vide
    matrix = []
     
    # Fonction pour vérifier les contraintes de chevauchement
    def has_valid_overlap(new_row, matrix):
        for row in matrix:
            # Calculer le nombre d'éléments communs avec chaque ligne existante
            common_elements = set(new_row) & set(row)
            # Vérifie qu'il y a exactement 2 éléments en commun
            if len(common_elements) != 2:
                return False
        return True
     
    # Génération de la matrice ligne par ligne
    while len(matrix) < NUM_ROWS:
        # Générer une ligne aléatoire avec 6 valeurs uniques de C
        new_row = random.sample(C, NUM_COLS)
        # Vérifier les contraintes de chevauchement avec les lignes existantes
        if has_valid_overlap(new_row, matrix):
            matrix.append(new_row)
     
    # Conversion de la matrice en DataFrame
    df = pd.DataFrame(matrix, columns=[f'Col_{i+1}' for i in range(NUM_COLS)])
     
    # Afficher la matrice sous forme de DataFrame
    df


    Merci

    Bonjour. L'énoncé semble être un exercice banal sur la modularité. Je te conseilles de ne pas t'égarer dans la génération pseudo-aléatoire des 29 lignes. La génération pourra te donner 1 million de fois la même combinaison, sans jamais te donner une combinaison cible sur des milliards de cas.. Ça n'a aucun intérêt, si ce n'est ajouter de la complexité à l'algorithme.
    Revois l'énoncé et les éléments qui conditionnent la résolution. La solution sera plus simple si tu pars de 1 à 29, pour générer des intervalles linéaires de 1 à 8, qu'il suffit d'ajuster à la volée.
    Mentalement on trouve que sur la suite 1 a 29, 8*4 -29 = 3.
    On trouve 3 valeurs à compléter à la 4e ligne. Ce qui n'est pas une difficulté. Ce qui semble l'être en apparence est la condition sur chaque paire prise dans la matrice, on doit trouver deux éléments en commun.
    Mais ça ne l'est pas aussi, en vérité. On a que 8 valeurs par ligne sur lesquelles 2 et seulement deux seront en collision avec la ligne suivante ou la ligne précédente. Donc il restera 6 valeurs à échapper avec un nombre régulateur qui n'est autre que 6.
    Chaque élément modulo 29 + 1, bien sûr.
    Après si tu veux mélanger pour le plaisir les éléments d'une ligne, tu pourras le faire. Mais la matrice doit être conçu sur une démarche linéaire.
    Voilà l'indication que j'ai voulu donner sur ce que j'ai compris.

  3. #23
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2024
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2024
    Messages : 13
    Par défaut
    Voici un exemple surlequel s'inspirer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    t29x8 = [[(j * 8 + i) % 29 + 1 for i in range(1,9)] for j in range(29)]
    for i, t in enumerate(t29x8):
       t29x8[i] = t[:2] + [(6 + t[j]) % 29 + 1 for j in range(6)],
    Sur le même ordre de concept, le code suivant est plus pédagogique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    t29x8 = []
    k = 1
    for i in range(29):
       t8 = [k, k + 1] + [j % 29 + 1 for j in range(k + 7, k + 13)],
        k = (k + 8) % 29
        t29x8+= t8,
        print(k//8, t8)

    On peut constater qu'une paire de lignes contigues prise au hasard dans la liste satisfait les éxigeances. Et on a la 1ere et la derniere qui satisfont dans le cas d'un parcours repetifif x fois 29, on peut attaquer sur n'importe quelle ligne.

  4. #24
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 632
    Par défaut
    Bonjour invtrd,

    Citation Envoyé par invtrd Voir le message
    ...On peut constater qu'une paire de lignes contigües prises au hasard dans la liste satisfait les exigences. Et on a la 1ere et la dernière qui satisfont dans le cas d'un parcours repetifif x fois 29, on peut attaquer sur n'importe quelle ligne.
    Sauf erreur, la contrainte ne s'applique pas seulement aux lignes contigües mais à toute paire de lignes, ce qui est sensiblement plus difficile.

    Salut

  5. #25
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2024
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2024
    Messages : 13
    Par défaut
    Citation Envoyé par Guesset Voir le message
    Bonjour invtrd,



    Sauf erreur, la contrainte ne s'applique pas seulement aux lignes contigües mais à toute paire de lignes, ce qui est sensiblement plus difficile.

    Salut
    Autant pour moi si c'est le cas. Ce que je propose est alors côté de la plaque.
    .
    Mais dans le même ordre d'idée en y reflechissant un peu plus (je lisais pensivement une liste donnée au post #4 qui n'a pas l'air d'aller sur cette indication). Mais je trouves aussi en y pensant que je suis passé également à côté de la simplicité de la solution si paire de lignes contigues. Sinon, je vois mentalement 20 lignes qui satisferont sur toute paire de lignes choisies aléatoirement qui partageront le même couple.

    Je m'explique: si au hasard les valeurs (1,2) doiventt être communes à toutes les lignes, dans une boucle où i débute à 2, on génère une séquence de 6 nombres contrôlés avec j = i + 6, et k = i, on incrémente k de 1 tant qu'inférieur à j pour concatener ces valeurs au couple (1,2) , ensuite on incrémente i de 1 tant que i inferieur a 23. Voilà une piste. Au bout de ce traitement, il restera je crois 8 lignes à compléter dans la même logique linéaire en recommençant avec i = 3, on relance le même traitement. Il est possible de continuer ainsi, i = 4, ... pour trouver toutes les possibillités restantes sur le couple (1,2).

    Je penses que c'est une approche sans détour, pour résoudre la demande.
    Salut.

  6. #26
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 216
    Par défaut
    La demande tient en ces 3 lignes :
    Générer une matrice M de dimensions 29×8 où :
    - Chaque ligne de la matrice représente un sous-ensemble de 8 entiers distincts, choisis parmi les entiers de 1 à 29.
    - Chaque paire de lignes doit avoir exactement deux éléments en commun.
    Et je pense que c'est sans ambiguité.
    Il y a eu des suggestions, qui amènent des contraintes supplémentaires.
    Mais, sans même ajouter de contraintes supplémentaires, c'est à peu près clair qu'il n'y a pas de solution.

    La proposition du message 4 correspond avec ces contraintes... sauf qu'il n'y a que 18 lignes et on en voudrait 29. On est loin du compte.
    A partir de cette position, on peut faire des recherches à la main, et on voit qu'on est bloqué.
    Par exemple, si on cherche une ligne qui commencerait par 12:16, on a déjà 12 et 16 en ligne 1, donc ça nous interdit les nombres 11:13:14;15;17;18 ; 12 et 16 sont aussi tous les 2 en ligne 8, ça nous interdit d'autres nombres...
    Tentons d'ajouter le nombre 19 ; 12 et 19 sont tous les 2 sur la 2ème ligne, ça nous interdit différents nombres, on bloque très vite.
    Si au lieu de 19, on essaie de compléter avec 20, pareil, on a un blocage.
    etc etc. Tester tous les cas à la main est très long, mais déjà, ne serait-ce que trouver un ensemble de 6 nombres, qui aurait au max 2 nombres en commun avec chacune des 18 lignes, on galère.
    En trouver 7, on galère encore plus,
    En trouver 8, qui ont au max 2 nombres en commun avec chacune des lignes, c'est encore plus dur.
    Et ce qu'on cherche, c'est encore plus dur :
    Trouver une ligne de 8 nombres, qui aurait exactement 2 nombres en commun avec chacune des lignes, on ne trouve pas.

  7. #27
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2024
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2024
    Messages : 13
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    ...
    Générer une matrice M de dimensions 29×8 où :
    - Chaque ligne de la matrice représente un sous-ensemble de 8 entiers distincts, choisis parmi les entiers de 1 à 29.
    - Chaque paire de lignes doit avoir exactement deux éléments en commun.
    Merci de la précision. Dans ce cas, on peut affirmer qu'il n'y a pas de solution.
    Car toute paire prise au hasard laisse une marge de 27/6, soit 4 combinaisons maximales de nombres distincts par ligne, qui peuvent être concaténés au couple, et qui ne peuvent être partagés dans les autres lignes. Si c'est la demande, je ne vois pas pourquoi perdre du temps?

    Edit::
    Etes vous sûr que ce ne sont pas les ensembles (lignes) qui sont distincts entre eux avec la contrainte de nombres distincts dans l'ensemble, et non 8 entiers distincts qui ne peuvent être reproduits dans les autres lignes? Dans ce cas même l'éxigeance de deux nombres communs est aberrant.
    Quelque chose m'échappe dès lors, et si c'est comme je le penses, quelque chose m'échappe toujours sur les procédés d'exploration.

  8. #28
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 216
    Par défaut
    Car toute paire prise au hasard laisse une marge de 27/6, soit 4 combinaisons maximales de nombres distincts par ligne
    ??? Quelle est l'équation qui te permet de conclure ?
    Et avec ton raisonnement, quel est le nombre max de lignes qu'on peut obtenir ? 4 ?

  9. #29
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2024
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2024
    Messages : 13
    Par défaut
    Oui 4, sur le cas d'une comprehension que j'ai demandé a confirmer si exact. Je penses que aurais pu prendre la peine de confirmer ou d'infirmer, avec les éclaircissements sur ce que je n'aurais pas compris des contraintes avant cette question. Je suis sür de ne pas avoir compris quelque part.

  10. #30
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 216
    Par défaut
    Je ne peux pas répondre à tes questions, parce que je ne comprends pas tes questions.

    J'aime les phrases simples, qui font moins de 20 mots. Parfois, c'est nécessaire de revenir à des phrases simples, pour éviter tout problème. Sujet/Verbe/Complément.

    Je recopie quelques phrases de mon précédent message.

    La demande tient en ces 3 lignes :
    Générer une matrice M de dimensions 29×8 où :
    - Chaque ligne de la matrice représente un sous-ensemble de 8 entiers distincts, choisis parmi les entiers de 1 à 29.
    - Chaque paire de lignes doit avoir exactement deux éléments en commun.
    ...
    La proposition du message 4 correspond avec ces contraintes... sauf qu'il n'y a que 18 lignes et on en voudrait 29. On est loin du compte.
    Donc c'est clair : avec les contraintes imposées, on peut aller au delà de 4 lignes, on arrive jusqu'à 18 lignes au moins. La réponse à ta question, elle est là, elle était écrite déjà avant que tu ne poses la question.
    Tu as lu ce message, tu as vu qu'on pouvait aller jusqu'à 18 lignes, c'était écrit clairement, noir sur blanc, sans ambiguïté, et il y avait même un exemple dans le message 4.
    Et toi, tu dis : avec ces contraintes, on ne peut pas aller au delà de 4 lignes.
    Ce n'est pas sérieux, ça ne fait pas avancer la discussion. Bien au contraire.

    Et je reprécise un point qui était aussi écrit noir sur blanc :
    On veut créer une matrice qui répond aux contraintes ci-dessus (les fameuses 3 lignes).
    Mais la vraie demande est : on veut savoir si c'est possible, oui ou non, de créer une matrice qui vérifie ces contraintes.

  11. #31
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2024
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2024
    Messages : 13
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Je ne peux pas répondre à tes questions, parce que je ne comprends pas tes questions.

    J'aime les phrases simples, qui font moins de 20 mots. Parfois, c'est nécessaire de revenir à des phrases simples, pour éviter tout problème. Sujet/Verbe/Complément.

    Je recopie quelques phrases de mon précédent message.



    Donc c'est clair : avec les contraintes imposées, on peut aller au delà de 4 lignes, on arrive jusqu'à 18 lignes au moins. La réponse à ta question, elle est là, elle était écrite déjà avant que tu ne poses la question.
    Tu as lu ce message, tu as vu qu'on pouvait aller jusqu'à 18 lignes, c'était écrit clairement, noir sur blanc, sans ambiguïté, et il y avait même un exemple dans le message 4.
    Et toi, tu dis : avec ces contraintes, on ne peut pas aller au delà de 4 lignes.
    Ce n'est pas sérieux, ça ne fait pas avancer la discussion. Bien au contraire.

    Et je reprécise un point qui était aussi écrit noir sur blanc :
    On veut créer une matrice qui répond aux contraintes ci-dessus (les fameuses 3 lignes).
    Mais la vraie demande est : on veut savoir si c'est possible, oui ou non, de créer une matrice qui vérifie ces contraintes.
    Finalement c'est à moi de me faire comprendre.
    Sur le poste #1 je lis:
    1-Chaque ligne contient 6 valeurs distinctes.
    2-Chaque paire de lignes partage exactement 2 éléments.
    3-Les valeurs utilisées sont comprises entre 1 et 16.
    Et vous me précisez ceci:
    Générer une matrice M de dimensions 29×8 où :
    - Chaque ligne de la matrice représente un sous-ensemble de 8 entiers distincts, choisis parmi les entiers de 1 à 29.
    - Chaque paire de lignes doit avoir exactement deux éléments en commun.
    Vous remarquerez sans doute la contradiction. Elle est accentuée par la précision au point 3 du post #1. J'ai donc fait l'effort de lire les messages suivants, à la recherche de clarifications. Je trouves au post #7 que le demandeur a abordé une notion de BIBD (que je n'avais pas).

    La 3e contrainte du post #1, qui exigeait de 1 a 16 est changé par le demandeur lui même quelque part dans le flux en imposant de 1 a 29.

    Je me suis arrêté là, pour demander des explications sur les énoncés, du fait des confusions que tes remarques apportaient à ma compréhension. Mais monsieur trouve que je manques de sérieux, quand dans ma bonne volonté, je bute sur des énoncés contradictoires.
    Par ailleurs, bien que je te repondais, j'aurais dû explicitement interpeller le demandeur @IME14 sur ces questions, car tu étais moins concerné de mon point de vue.


    Ceci clarifié, je reprends ce qui ressort de mes propositions. En laissant de côte la solution naïve, où je pensais que les lignes contigues satisfont la demande, je voyais deux cas.
    1 - On peut trouver jusqu'à 22 lignes qui satisferont les contraintes. Il restera un doute pour les 7 restantes, qui peuvent être vérifiées dans le même schéma procédural. (Je pressens que les contraintes basées sur les valeurs 2, 8, 29 n'ont pas de solution après 22 lignes)
    2 - On ne trouvera que 4 lignes si les valeurs des éléments dans chaque ligne ne seront pas reproduits. La demande est alors absurde si cette derniere condition était vrai.
    Voilà pour mettre fin à la fausse polémique.
    Bonne journée.

  12. #32
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 216
    Par défaut
    Il y a en effet déjà beaucoup de confusion dans le début de la discussion (avant que tu n'interviennes). Dans certains cas, on avait uniquement les 3 'fameuses' lignes pour définir le besoin, et parfois des contraintes supplémentaires.
    A priori, on a réussi à se recentrer sur cette question avec ces 3 fameuses lignes.

    Est-il possible, oui ou non, de générer une matrice M de dimensions 29×8 où :
    - Chaque ligne de la matrice représente un sous-ensemble de 8 entiers distincts, choisis parmi les entiers de 1 à 29.
    - Chaque paire de lignes doit avoir exactement deux éléments en commun.
    Tu cites cette ligne extraite du 1er message , et tu la soulignes même :
    Chaque ligne contient 6 valeurs distinctes.
    Et tu dis que certaines réponses sont en contradiction avec cette ligne.

    Relis ce premier message, cette partie est très claire :
    Je cherche un certain problème ...
    Et pour information, quand je cherche un problème un peu similaire, avec une taille réduite (16x6), voici ce que j'obtiens.
    La ligne que tu as soulignée, elle vient de ce problème un peu similaire, elle ne vient pas du problème qu'IME14 cherche à résoudre. Oui, les nombres sont différents entre ce problème à taille réduite et le problème du jour, évidemment.

    Il y a effectivement des choses qui sont confuses, mais il y a des choses qui sont très claires. Et se tromper sur ces choses très claires, c'est dommage.

  13. #33
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 489
    Par défaut
    Salut

    si je comprend bien vous voulez toutes les combinaison sans repetion mise a part une racine commune de deux chiffres

    C'est a dire que si la racine comune et 3 et 4
    on veux toutes les ligne possedant 3 et 4
    mais que les 6 autres chiffres doivent etre imperativement different

  14. #34
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2024
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2024
    Messages : 13
    Par défaut
    Citation Envoyé par anapurna Voir le message
    Salut

    si je comprend bien vous voulez toutes les combinaison sans repetion mise a part une racine commune de deux chiffres

    C'est a dire que si la racine comune et 3 et 4
    on veux toutes les ligne possedant 3 et 4
    mais que les 6 autres chiffres doivent etre imperativement different
    Bonjjour.Si c'était cela, les indications sur une démarche que j'ai expliqué post #25 sont suffisanres pour résoudre le problème mentalement. Le codage ne prendra que quelques minutes, pour avoir d'ailleurs plus de 29 lignes. Mais un intervenant laisse entendre autre chose qu'il ne peut pas expliquer.

  15. #35
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 632
    Par défaut
    Bonjour Anapurna,

    Citation Envoyé par anapurna Voir le message
    ...Si je comprend bien vous voulez toutes les combinaison sans répétition mise a part une racine commune de deux chiffres
    C'est à dire que si la racine commune est 3 et 4 on veux toutes les lignes possédant 3 et 4 mais que les 6 autres chiffres doivent être impérativement différent
    Pas vraiment. Même si les termes initiaux pouvaient laisser penser à un problème matriciel ou vectoriel, c'est en fait un problème d'ensemble : un ensemble de 29 items doit être partagé en sous-ensembles de huit items chacun ayant en commun, pour chaque couple de sous-ensembles, deux, et seulement deux items. Combien de sous-ensembles peut-on créer ? est-ce que 29 est atteignable ? tbc92 atteint 18 mais on ne sait pas quelle est la limite exacte.

    Les items en communs ne sont pas fixés et peuvent être, par exemple, pour 3 sous-ensembles : [1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 9, 10, 11, 12, 13, 14] et [4, 5, 10, 11, 15, 16, 17, 18].

    Avoir 2 items communs fixes est une approche simple qui ne permet que 4 sous-ensembles alors qu'il est possible d'aller au moins jusqu'à 18.

    Salut

  16. #36
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2024
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2024
    Messages : 13
    Par défaut
    Bonjour.
    Merci Guesset d'avoir pris cette peine pour définir à nouveau les termes des éxigeances avec cette illiustration.
    J'aurais juste une remarque sur l'affirmation que tcb92 propose une solution limitée à 18 lignes. Il lui a sans doute échappé qu'il s'exerçait sur une limite de 39 au lieu de 29. C'est l'objet d'une grande incompréhension entre nous quand je lui signalais une contradiction sur les conditions et sa solution à 18 lignes.

  17. #37
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 216
    Par défaut
    invtrd, je t'invite à lire correctement les messages.
    Tu lis en diagonale, tu interprètes mal, et du coup, tu écris n'importe quoi.

    Sur cette numérotation qui va jusqu'à 39, je recopie ce que j'avais écrit dans le message incriminé :
    La solution avec 17 lignes (les éléments sont numérotés de 11 à 39, et pas de 1 à 29...) :
    il me semble que c'est clair, et que tu es le seul à ne pas comprendre.

  18. #38
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2024
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2024
    Messages : 13
    Par défaut
    01 02 03 04 05 06 07 08
    02 03 04 05 06 07 08 09
    03 04 05 06 07 08 09 10
    04 05 06 07 08 09 10 11
    05 06 07 08 09 10 11 12
    06 07 08 09 10 11 12 13
    07 08 09 10 11 12 13 14
    08 09 10 11 12 13 14 15
    09 10 11 12 13 14 15 16
    10 11 12 13 14 15 16 17
    11 12 13 14 15 16 17 18
    12 13 14 15 16 17 18 19
    13 14 15 16 17 18 19 20
    14 15 16 17 18 19 20 21
    15 16 17 18 19 20 21 22
    16 17 18 19 20 21 22 23
    17 18 19 20 21 22 23 24
    18 19 20 21 22 23 24 25
    19 20 21 22 23 24 25 26
    20 21 22 23 24 25 26 27
    21 22 23 24 25 26 27 28
    22 23 24 25 26 27 28 29
    23 24 25 26 27 28 29 01
    24 25 26 27 28 29 01 02
    25 26 27 28 29 01 02 03
    26 27 28 29 01 02 03 04
    27 28 29 01 02 03 04 05
    28 29 01 02 03 04 05 06
    29 01 02 03 04 05 06 07

    . Soit une réserves de nombres distincts de 1 à 29 distribués dans une matrice de 29 * 8 tel que chaque jeton apparait 8 fois, comme l'illustre le tableau en haut.

    Le souhait serait d'organiser les données du tableau en respectant les conditions suivantes:

    . Toute paire de lignes quelconque doit avoir qu'une paire jetons communs.
    . Une paire d'elements ne doit aparaitre que sur 2 lignes.

    Je m'adresse à @IME24, ou un autre intervenant moins susceptible. J'aimerais que vous comfirmez ou completiez autre chose qui m'aurait échappé.

  19. #39
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 632
    Par défaut
    Bonjour invtrd,

    Citation Envoyé par invtrd Voir le message
    ...J'aurais juste une remarque sur l'affirmation que tcb92 propose une solution limitée à 18 lignes. Il lui a sans doute échappé qu'il s'exerçait sur une limite de 39 au lieu de 29. C'est l'objet d'une grande incompréhension entre nous quand je lui signalais une contradiction sur les conditions et sa solution à 18 lignes.
    En fait, les intitulés des items distribués n'a pas d'importance tant qu'ils sont distincts les uns des autres et qu'il y en a 29.

    tbc92 a 29 éléments (de 11 à 39) mais cela aurait pu être de 101 à 129 ou "AA" à "BC", ou 29 noms de personnes etc. Ici les intitulés ne sont que des étiquettes (il n'a aucun calcul sur leur valeur seulement sur leur présence ou non dans un sous-ensemble). Une solution pour 29 éléments pourra toujours être transformée en une solution numéroté de 1 à 29.

    J'ai utilisé des couleurs sans rien changer au problème. Cela permet juste une représentation dense plus lisible.

    Il a trouvé une solution jusqu'à 18 étapes (il suffit de retirer 10 à chaque valeur pour retrouver la séquence d'origine) et doute de pouvoir aller plus loin. Je travaille (mollement) sur un algorithme qui devrait être assez rapide (avec des ensembles et non des tableaux, en langage natif, une pincée d'assembleur...) mais sans garantie de dépasser les 18 étapes déjà atteintes.

    Salut.

  20. #40
    Membre habitué
    Homme Profil pro
    indicateurs économique
    Inscrit en
    Septembre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : indicateurs économique
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 11
    Par défaut
    Citation Envoyé par invtrd Voir le message
    Je m'adresse à @IME24, ou un autre intervenant moins susceptible. J'aimerais que vous comfirmez ou completiez autre chose qui m'aurait échappé.
    Le problème est clair :

    Générer une matrice M de dimensions 29×8 où :
    - Chaque ligne de la matrice est un sous-ensemble de 8 entiers distincts choisis parmi les entiers de 1 à 29.
    - Chaque paire de lignes de la matrice doit partager exactement deux éléments en commun.

Discussions similaires

  1. Optimiser algorithme C++
    Par CliffeCSTL dans le forum Débuter
    Réponses: 8
    Dernier message: 24/04/2014, 12h42
  2. Optimiser algorithme de kernel smoothing
    Par vampirella dans le forum MATLAB
    Réponses: 8
    Dernier message: 12/07/2010, 11h25
  3. Optimisation Algorithme ?
    Par Deva74 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 13/03/2010, 08h51
  4. [Optimisation] Algorithme de réduction
    Par tromaltsec dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 06/08/2009, 14h26
  5. Optimisation algorithme de programmation
    Par mp_moreau dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 29/07/2007, 19h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo