Que classe de problema é esse e que matemática eu preciso saber para resolvê-lo?


18

O cultivo de cogumelos requer uma composição química bastante precisa do substrato (também conhecido como meio de cultivo). Vamos fingir que estamos cultivando shitakes e que essa é a composição necessária do substrato:

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

Queremos criar um substrato apropriado a partir de materiais que temos em mãos, dos quais conhecemos a composição química.

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

Como alguém calcula isso? Isso me lembra de resolver matrizes no ensino médio. Isso é algo que pode ser feito com matrizes? Como se chama esse problema? O que preciso saber para resolvê-lo?


4
Mmmm. Shitakes muito agradáveis ​​que você tem com benzeno, tolueno e O2F2. Espero que eu não nunca se deparar com eles em um restaurante ...
Deer Hunter

3
@Deer Hunter: Eu espero nunca vir dentro de menos de 10 milhas de que a facilidade de cultivo ...
Michael Borgwardt


2
Esse problema fica ainda mais interessante se você tiver que levar em consideração o preço atual de maçãs e laranjas.
Ingo

2
"cogumelos" -> como nas nuvens da mesma forma?
Maciej

Respostas:


27

Isso é chamado de Programação Linear . É NP-Difícil para restrições de número inteiro, mas existem métodos para lidar com isso, veja as notas de Jeff Erickson sobre o assunto. O método mais comum é conhecido como Algoritmo Simplex .

Basicamente, você encontra os vértices das formas formadas geometricamente pelas equações lineares que representam suas restrições. Você prossegue até encontrar o ideal. Nesse caso, a proporção de componentes de substrato necessários.


9
Na verdade, a programação linear não é conhecida por ser NP-difícil, mas pode ser resolvida em tempo polinomial. Só fica difícil se você adicionar restrições de integralidade (por exemplo, você não deseja 3,7 maçãs, mas deve ser um número inteiro).
Falk Hüffner

Corrigido esse problema
World Engineer

4

Editar: isso não funciona, ver comentários

Como você não tem desigualdades nem minimiza custos aqui, na verdade não precisa de programação linear, basta resolvê-lo como um sistema de equações lineares . Por exemplo, maçãs + laranjas = 1, 0,05 * maçãs + 0,20 * laranjas = 0,05 etc.


Contanto que as soluções do sistema não apresentem frações negativas (por exemplo, misture -22% das maçãs e + 122% das laranjas para formar 100% ...) De fato, o sistema de equações lineares fornece alguns candidatos (soluções internas?) mas os casos extremos também precisam ser verificados.
Rwong

Certo, eu esqueci disso.
Falk Hüffner

1
Uma formulação de LP funcionaria bem, pois poderia incluir a restrição de que todas as quantidades são positivas.
Kevin cline

As mudanças são de que a minimização de custos com relação à relação preço / maçã seria o próximo passo na evolução deste programa.
Ingo

@ Ingo Sim, você está certo; Eu não tinha pensado tão longe quando fiz a pergunta. Esse será o segundo passo.
Canisrufus
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.