Che classe di problemi è questo e quale matematica devo sapere per risolverlo?


18

La coltivazione di funghi richiede una composizione chimica del substrato abbastanza precisa (alias mezzo di coltivazione). Facciamo finta di coltivare shitakes e che questa sia la composizione richiesta del loro substrato:

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

Vogliamo creare un substrato appropriato dai materiali che abbiamo a disposizione di cui conosciamo la composizione chimica.

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

Come si calcola questo? Mi ricorda di aver risolto le matrici al liceo. È qualcosa che può essere fatto con le matrici? Come si chiama questo problema? Cosa devo sapere per risolverlo?


4
Mmmm. Veery shitakes carini che hai con benzene e toluene e O2F2. Spero di non incontrarli mai in un ristorante ...
Deer Hunter l'

3
@Deer Hunter: spero di non arrivare mai a meno di 10 miglia da quella struttura di coltivazione ...
Michael Borgwardt,


2
Questo problema diventa ancora più interessante se dovessi prendere in considerazione il prezzo attuale di mele e arance.
Ingo,

2
"funghi" -> come nelle nuvole della stessa forma?
Maciej,

Risposte:


27

Questo si chiama Programmazione lineare . È NP-Hard per vincoli di numeri interi ma ci sono metodi per gestirlo, vedi le note di Jeff Erickson sull'argomento. Il metodo più comune è noto come algoritmo simplex .

Fondamentalmente stai trovando i vertici delle forme formate geometricamente dalle equazioni lineari che rappresentano i tuoi vincoli. Procedi fino a trovare quello ottimale. In questo caso, il rapporto tra i componenti del substrato necessari.


9
La programmazione lineare in realtà non è nota per essere NP-difficile, può essere risolta in tempi polinomiali. Diventa difficile solo se aggiungi vincoli di integrità (ad esempio, non vuoi 3.7 mele, ma deve essere un numero intero).
Falk Hüffner,

Risolto il problema
Ingegnere mondiale il

4

Modifica: questo non funziona, vedi commenti

Dato che qui non ci sono disuguaglianze né minimizzazione dei costi, in realtà non hai bisogno di una programmazione lineare, puoi semplicemente risolverlo come un sistema di equazioni lineari . Ad esempio mele + arance = 1, 0,05 * mele + 0,20 * arance = 0,05 ecc.


Finché le soluzioni di sistema non danno frazioni negative (ad es. Mescolare in -22% di mele e + 122% di arance per costituire il 100% ...) In effetti, il sistema di equazioni lineari dà alcuni candidati (soluzioni interne?) ma anche i casi limite devono essere controllati.
rwong

Bene, me ne sono dimenticato.
Falk Hüffner,

1
Una formulazione LP funzionerebbe bene, poiché potrebbe includere la restrizione che tutte le quantità sono positive.
Kevin Cline l'

I cambiamenti sono che la minimizzazione dei costi rispetto al rapporto prezzo mela / arancia sarebbe il prossimo passo nell'evoluzione di questo programma.
Ingo,

@Ingo Sì, hai ragione; Non ci avevo pensato molto quando ho posto la domanda. Quello sarà il secondo passo.
canisrufus,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.