Quelle classe de problème est-ce, et quelles mathématiques dois-je savoir pour le résoudre?

18

La culture des champignons nécessite une composition chimique assez précise du substrat (alias milieu de culture). Imaginons que nous cultivons des shitakes et que c'est la composition requise de leur substrat:

Nitrogen | Benzene | Toluene | Dioxygen Diflouride
5%       | 5%      | 10%     | 80%

Nous voulons créer un substrat approprié à partir de matériaux que nous avons sous la main et dont nous connaissons la composition chimique.

Material | Nitrogen | Benzene | Toluene | Dioxygen Diflouride
apples   | 5%       | 0%      | 5%      | 90%
oranges  | 20%      | 20%     | 50%     | 10%
Etc...

Comment calcule-t-on cela? Cela me rappelle de résoudre des matrices au lycée. Est-ce quelque chose qui peut être fait avec des matrices? Comment s'appelle ce problème? Que dois-je savoir pour le résoudre?

canisrufus
la source
4
Mmmm. Veery nice shitakes you have with benzene and toluene and O2F2. J'espère que je ne les ai jamais rencontrés dans un restaurant ...
Deer Hunter
3
@Deer Hunter: J'espère que je ne serai jamais à moins de 10 miles de cette installation de culture ...
Michael Borgwardt
6
FOOF !
Bobson
2
Ce problème devient encore plus intéressant si vous devez tenir compte du prix actuel des pommes et des oranges.
Ingo
2
"champignons" -> comme dans les nuages ​​de même forme?
Maciej

Réponses:

27

C'est ce qu'on appelle la programmation linéaire . Il est NP-Hard pour les contraintes entières mais il existe des méthodes pour y faire face, voir les notes de Jeff Erickson sur le sujet. La méthode la plus courante est l' algorithme Simplex .

Fondamentalement, vous trouvez les sommets des formes géométriquement formés par les équations linéaires représentant vos contraintes. Vous continuez jusqu'à trouver la solution optimale. Dans ce cas, le rapport des composants de substrat nécessaires.

Ingénieur du monde
la source
9
La programmation linéaire n'est pas connue pour être NP-difficile, elle peut être résolue en temps polynomial. Cela ne devient difficile que si vous ajoutez des contraintes d'intégralité (par exemple, vous ne voulez pas de pommes 3,7, mais ce doit être un nombre entier).
Falk Hüffner
Correction de ce problème
World Engineer
4

Edit: cela ne fonctionne pas, voir les commentaires

Puisque vous n'avez aucune inégalité et aucune minimisation des coûts ici, vous n'avez pas réellement besoin de programmation linéaire, vous pouvez simplement le résoudre comme un système d'équations linéaires . Par exemple, pommes + oranges = 1, 0,05 * pommes + 0,20 * oranges = 0,05, etc.

Falk Hüffner
la source
Tant que les solutions système ne donnent pas de fractions négatives (ex: mélanger -22% de pommes et + 122% d'oranges pour constituer 100% ...) En effet, le système d'équations linéaires donne quelques candidats (solutions intérieures?) mais alors les cas de bord doivent également être vérifiés.
rwong
Bon, j'ai oublié ça.
Falk Hüffner
1
Une formulation LP fonctionnerait bien, car elle pourrait inclure la restriction que toutes les quantités sont positives.
kevin cline
Les changements sont que la minimisation des coûts par rapport au rapport prix pomme / orange serait la prochaine étape dans l'évolution de ce programme.
Ingo
@Ingo Ouais, tu as raison; Je n'avais pas pensé si loin quand j'ai posé la question. Ce sera la deuxième étape.
canisrufus