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?

canisrufus
fonte
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
6
FOOF !
22413 Bobson
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.

Engenheiro Mundial
fonte
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.

Falk Hüffner
fonte
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