Passa al tema normale
Spazio dedicato a problemi che vanno al di là dei semplici temi d'esame o degli esercizi standard.

Regole del forum

Consulta il nostro regolamento e la guida per scrivere le formule
Rispondi al messaggio

Modello di Ottimizzazione

10/01/2020, 10:58

Ciao a tutti,

Volevo condividere con voi un problema pratico che ho riscontrato nella produzione di birra artigianale.
In pratica, per ogni stile di birra (es: pils, IPA, stout etc...) esiste un profilo di acqua idoneo a quel determinato stile di birra. Viene definito come profilo il numero di parti per milione (ppm) dei seguenti ioni disciolti nell'acqua

Ca2+
Mg2+
Na+
Cl-
SO42-
HCO3-

Io sono in possesso di tutti i profili target delle acque ed un database contenente i profili delle acque minerali in commercio in Italia. La mia domanda è questa: esiste un algoritmo che mi permetta di creare un mix con un numero predefinito di acque minerali (es: 2/3/4 tipi di acqua differente) che più si avvicini al profilo target? Tale algoritmo può essere implementato su Excel?

Ho provato a rispolverare gli appunti di ricerca operativa ed AMPL ma con scarsi risultati

Birretta offerta a chi mi darà una mano :DDD

Re: Modello di Ottimizzazione

15/01/2020, 16:05

Il metodo più semplice è trovare 6 acque minerali e infilare i profili in 6 colonne per ottenere una matrice quadrata A (6x6). Cercane 6 che siano il più possibile differenti (tipo una che praticamente 0 dei primi tre ioni e tanto dei rimanenti tre. Poi una seconda che sia l'opposto). Insomma, quando calcolerai il determinante della matrice https://matrixcalc.org/en/ usa delle frazioni e fa in modo he sia il più possibile diverso da zero.
Una volta trovata A dovrai solo risolvere il sistema $Ax=b$ dove b è un profilo ideale di acqua per una birra.
Troverai un'unica soluzione $x=<x_1,x_2,x_3,x_4,x_5,x_6>$
$x_1$ ti da la proporzione di acqua da prendere dalla prima acqua minerale/colonna
$x_2$ ti da la proporzione di acqua da prendere dalla seconda acqua minerale/colonna
e così via.

Re: Modello di Ottimizzazione

15/01/2020, 16:25

Grazie mille per la risposta.

Il problema che il DB delle mie acque minerali è di circa 250 acque differenti :lol: :lol: :lol:

Ci sarebbe uno strumento automatizzato tipo Excel, AMPL o altri?

Re: Modello di Ottimizzazione

16/01/2020, 00:19

Beh un modo ci sarebbe ma francamente non credo ne valga la pena. Scegline 6 che non siano "simili" a coppie e andranno benissimo.

Re: Modello di Ottimizzazione

16/01/2020, 12:17

Grazie mille!

Sarei curioso anche di sapere quale sia il metodo per usare tutto il DB: normalizzare la matrice per farla diventare quadrata?

Re: Modello di Ottimizzazione

16/01/2020, 17:30

Oh no, ti bastano 6 acque minerali e quindi una matrice 6x6 per ottenere il risultato voluto.

E' la scelta di 6 fra le 250 acque minerale che è interessante. E credo di aver trovato un modo "semplice" per selezionarle.
In pratica crei la matrice in excel di 250 colonne (che forse hai già creato). Quindi avrai una matrice 250x6.
Poi calcoli la media aritmetica delle sei righe e la sottrai da ogni singolo valore della rispettiva riga (così sposti i baricentri a zero e otterrai anche valori negativi). Chiamiamo il risultato di questa operazione matrice A.

Crei la trasposta $A^T$ (6x250) e poi fai il prodotto matriciale $A*A^T=B$
B è una matrice simmetrica di dimensioni 250x250, ed la matrice di devianza e codevianza. Gli elementi che stanno sulla diagonale sono le devianze e non ti interessano.
Ciò che ti interessa sono gli elementi al di fuori della diagonale, ovvero le codevianze fra diverse acque minerali.
Per esempio l'elemento $b_(ij)=b_(ji)$ è il prodotto scalare fra l'acqua nella colonna i-esima e l'acqua nella riga j-esima.
Tanto più $|b_(ij)|$ è piccolo (ovvero tanto più il valore assoluto della codevianza è piccola), tanto più le due acque tendono ad essere perpendicolari.
Quindi riordinando prima le colonne per valori crescenti (dopo averle etichettate e avendo cura di ordinare simultaneamente anche le etichette con le colonne) e successivamente le righe, troverai che la prima riga/acqua avrà i valori più piccoli con le prime colonne.

Dovrebbe funzionare bene.
Rispondi al messaggio


Skuola.net News è una testata giornalistica iscritta al Registro degli Operatori della Comunicazione.
Registrazione: n° 20792 del 23/12/2010.
©2000— Skuola Network s.r.l. Tutti i diritti riservati. — P.I. 10404470014.