Partage
  • Partager sur Facebook
  • Partager sur Twitter

Sujet boite aux crayons (Systeme lineaire)

    23 janvier 2020 à 15:30:53

    Bonjour à tous !!!

    Mon professeur nous a donné un exercice bonus pour un DM et j’aimerais réussir à le faire mais je suis totalement bloqué...

    Le sujet se nomme boite aux crayons : Vous devez envoyer un colis de 12 stylos choisis parmi 4 modèles. Le premier est bleu et coûte 1€ et pèse 5 grammes. Le second modèle est rouge coûte 1,5€ et pèse 7 grammes. Le troisième est bleu coûte 3€ et pèse 8 grammes. Le dernier modèle est rouge coute 4€ et pèse 10 grammes.

    Il est uniquement possible de placer exactement 12 stylos de le colis qui ne doit pas peser plus de 78 grammes, hors emballage. Le budget hors frais de port est de 22€. Et il doit y avoir autant de stylos de chaque couleur. 
    Montrez que l’on peut modéliser ce problème sous forme d’un système linéaire.

    Si la solution n’était pas entière, que devriez-vous faire ?

    Il m’est demandé de rédiger le programme C pour déterminer le contenu du colis.

    Je vous avoue que j’ai réussi tous mes exercices du devoir mais pas celui-ci, et ça me frustre vraiment. C’est pourquoi je fais appel a votre aide ?

    Merci par avance :)

    • Partager sur Facebook
    • Partager sur Twitter
      23 janvier 2020 à 16:30:27

      Et c'est quoi la question ?
      • Partager sur Facebook
      • Partager sur Twitter
        23 janvier 2020 à 16:40:44

        Eh bien, je ne comprends pas la méthode de résolution du problème... :/
        • Partager sur Facebook
        • Partager sur Twitter
          23 janvier 2020 à 18:45:40

          Salut,
          C'est un ensemble d'équations à 4 variables et 3 contraintes (ou 4?).
          On doit avoir n1 stylos de type {bleu, 1€, 5 g}. Même chose pour les 3 autres types n2, n3, n4 ...
          Puisque je suppose qu'on ne peut pas avoir des moitiés de stylos, ce sont des variables entières.
          On a n1 + n2 + n3 + n4 = 12
          Il faut au moins un stylo de chaque couleur, donc n1+n3 > 0 et n2+n4 > 0
          Il faut que le coût ne dépasse pas 22 euros
          Il faut que le poids ne dépasse pas 78 grammes.
          » Si la solution n’était pas entière, que devriez-vous faire ?
          Je crois que la solution peut être entière, la contrainte absolue est le nombre de stylos.
          Pour ce qui est des euros et des centimes, on peut tout mettre en centimes. On ferait la conversion inverse à la fin.
          Ici également, on ne peut pas avoir des fractions de centimes.
          Je ne me rappelle pas comment on résout ce type d'équations ... D'autant plus que ce sont des variables entières.
          J'irais de façon empirique en augmentant progressivement n1 à n4.
          Je pourrais réduire un des 4 au profit d'un autre pour optimiser la solution.
          Au départ, on pourrait mettre à 3 la valeur des 4 variables et voir si la solution satisfait les contraintes.
          On réduit l'élement qui contribue le moins au coût (euros + grammes).
          En tout cas, c'est un début ...
          La pire façon serait de faire 4 boucles imbriquées et vérifier les conditions à l'intérieur ...
          • Partager sur Facebook
          • Partager sur Twitter

          Le Tout est souvent plus grand que la somme de ses parties.

            23 janvier 2020 à 21:52:12

            PierrotLeFou a écrit

            C'est un ensemble d'équations à 4 variables et 3 contraintes (ou 4?).
            Il me semble que c'est un peu plus compliqué que cela vu qu'il y a des inéquations.

            • Partager sur Facebook
            • Partager sur Twitter
              23 janvier 2020 à 23:19:20

              C'est en effet un mélange d'équations et d'inéquations.
              J'ai pensé un moment que ça pourrait ressembler au problème du Simplexe, mais je n'en suis pas certain.
              L'énoncé du problème ne me semble pas clair sur un point: doit-on trouver une solution ou la solution optimale?
              Doit-on favoriser un coût minimal ou un poids minimal?
              J'ai pensé à une approche empirique car le nombre de possibilités doit être assez limité.
              Solution empirique:
              6 * {bleu, 1, 5} = 6, 30
              4 * {rouge, 1.5, 7} = 6, 28
              1 * {bleu, 3, 8} = 3, 8
              1 * {rouge, 4, 10} = 4, 10
              Total = 12, 19, 76
              Solutions: {6, 4, 1, 1} = [12, 19, 76]; {5, 5, 1, 1} = [12, 19.5, 78]; {6, 3, 2, 1} = [12, 20.5, 77]; d'autres?
              Solution optimale: {11, 1, 0, 0} = [12, 12.5, 62]

              -
              Edité par PierrotLeFou 24 janvier 2020 à 7:40:55

              • Partager sur Facebook
              • Partager sur Twitter

              Le Tout est souvent plus grand que la somme de ses parties.

                24 janvier 2020 à 11:34:37

                Oulaaah...

                ça me parait un peu compliqué pour mon « petit» niveau en C tous ça...

                Je vois pas du tout comment retranscrire en programme C ce que vous me dites 😅

                • Partager sur Facebook
                • Partager sur Twitter
                  24 janvier 2020 à 13:04:00

                  Est-ce que tu as trouvé le système linéaire ? Si oui, peux-tu nous l'écrire ? Si non, c'est lui qu'il faut trouver.

                  Tant que le système linéaire n'est pas trouvé, je ne vois pas l'intérêt de chercher à le programmer...

                  • Partager sur Facebook
                  • Partager sur Twitter
                    24 janvier 2020 à 17:56:12

                    Je vais faire une tentative pour écrire le système:
                    Soient n1 à n4 les variables, c1 à c4 les coûts et p1 à p4 les poids.
                    n1*c1 + n2*c2 + n3*c3 + n4*c4 <= 22
                    n1*p1 +n2*p2 +n3*p3 +n4*p4 <= 78
                    n1 + n2 + n3 + n4 = 12
                    n1+n3 > 0 et n2+n4 > 0
                    Il n'y a qu'une  équation parmi des inéquations.
                    La façon dont je l'ai fait consiste à trouver l'élément de moindre "charge" (coût et poids). Ici, c'est le premier (n1).
                    Je lui ai donné 12 stylos. C'aurait été la solution optimale.
                    Cependant j'avais une contrainte, il me fallait au moins un élément de la couleur complémentaire.
                    Quel est le meilleur choix (n2 ou n4?)? Celui qui a la charge la plus basse (n2).
                    Donc la solution optimale est n1=11, n2=1, n3=0, n4=0
                    Cette solution satisfait toutes les inéquations et équation.
                    J'ai présenté d'autres possibilités en retranchant des stylos du prenier type pour les donner à d'autres types tant que cela respecte les contraintes.
                    Passer de la solution {6, 4, 1, 1} à {6, 3, 2, 1} se fait en retranchant du 2ième type pour en donner au 3ième type.
                    On s'apperçoit vite qu'en retranchant des types de basse charge pour les donner aux types de haute charge nous amène rapidement à transgresser les contraintes.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Le Tout est souvent plus grand que la somme de ses parties.

                      24 janvier 2020 à 18:24:41

                      PierrotLeFou a écrit:

                      Donc la solution optimale est n1=11, n2=1, n3=0, n4=0
                      Çà ne respecte pas la contrainte d'avoir autant de stylos de chaque couleur.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        24 janvier 2020 à 19:28:53

                        J'avais mal lu cette contrainte:
                        » Et il doit y avoir autant de stylos de chaque couleur.
                        La solution n1=6, n2=6 n3=0 n4=0 donne [12, 15, 72]
                        et elle devrait satisfaire les contrainte cette fois ...
                        Cette contrainte est plus forte que ce que j'avais pensé.
                        L'algorithme choisirait la paire bleu-rouge de moindre charge et augmenterait le nombre d'eléments
                        Ça reste encore la façon de trouver la solution optimale.
                        Ensuite, si on veut trouver d'autres solutions, on retranche un élément de chaque type de cette paire et on les donne aux types de charge plus forte.
                        On continue ainsi tant qu'on ne depasse pas les limites.
                        La solution {5, 5, 1, 1} = [12, 19.5, 78];  nous amène déjà à la limite sur le poids.
                        les solutions {6, 5, 0, 1] = [12, 17.5, 75] et {5, 6, 1, 0} = [12, 17, 75] sont des variantes en redistribuant d'un type à l'autres de la même couleur.
                        Je vous laisse le plaisir d'en trouver d'autres s'il en reste ...
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Le Tout est souvent plus grand que la somme de ses parties.

                        Sujet boite aux crayons (Systeme lineaire)

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown