cerca
Ricerca Operativa - PL - Dosaggio farmaci - 01.07
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Ricerca Operativa - PL - Dosaggio farmaci - 01.07

Torna alla pagina di Ricerca Operativa


 :: Ricerca Operativa - PL - Dosaggio farmaci - 01.07 ::

Testo del problema

Nel trattamento farmacologico di un paziente un’équipe medica deve decidere le quantità ottimali di ogni farmaco da somministrare. Lo stato di salute del paziente viene misurato da alcuni parametri, ad esempio dalla quantità di date sostanze nel sangue. E’ noto da precedenti esperimenti l’effetto che ogni farmaco ha sull’aumento o diminuzione di ciascuno dei suddetti parametri. E’ noto inoltre lo stato iniziale del paziente, che si desume da recenti analisi compiute su di lui. Per ciascun parametro sono date una soglia minima ed una massima entro cui si vuole ricondurre o mantenere il parametro ed inoltre è noto un valore di riferimento a cui ci si vuole avvicinare il più possibile. Si vuole cioè minimizzare il rapporto tra lo scostamento dal valore ideale ed il massimo scostamento consentito dalla soglia. Perciò uno scostamento in eccesso è misurato da (valore_ottenuto – valore_ideale) / (valore_max_consentito – valore_ideale) mentre uno scostamento in difetto è misurato da (valore_ideale – valore_ottenuto) / (valore_ideale – valore_min_consentito). Poiché si vuole che tutti gli scostamenti siano piccoli, si vuole minimizzare il massimo di essi.
Poiché ogni farmaco induce effetti collaterali indesiderati, la quantità di ogni farmaco somministrabile non può eccedere un dato valore massimo.
Formulare il problema, classificarlo e risolverlo con i dati del file DOSAGGIO.TXT. Discutere l’ottimalità della soluzione trovata.

Dati

I parametri da valutare sono 7 (numerati 1...7), i farmaci disponibili 
sono 5 (indicati da A...E).

Tabella 1: Valori dei parametri e soglie [unità di misura non specificate]
Parametro   Valore    Soglia   Valore di    Soglia
            attuale   minima   riferimento  massima
    1        3.45       7.0      12.0        15.0
    2        1800      1700      2500        3500
    3        0.05      0.50      0.80        1.30
    4        3200      1400      2000        2750
    5        26.4       8.0      10.0        12.0     
    6          35        28        35          41
    7         136        80       120         160

Tabella 2: Effetto dei farmaci (variazione parametri per ogni mg di farmaco)

Parametro    Farmaco A      B      C      D      E
    1              -0.2   +0.5   +0.7   +0.1   +0.2
    2              -500    0.0   -250    +50    0.0
    3              +0.2   -0.1   +0.3    0.0   +0.2
    4               -80   -120    +15    -90   -100
    5              -8.5   -7.0   -1.0   -3.0   +1.0
    6                +5     -2     +8     -4      0
    7                -5     -1     -2     -3     +4

Tabella 3: Quantità max di farmaci somministrabili [mg]
Farmaco    Quantità
   A          2.0
   B          3.5
   C          0.5
   D          0.5
   E          7.5

Formulazione del problema

Dati

  • p = 7 (numero parametri da valutare)
  • f = 5 (numero farmaci disponibili)
  • valAtti (valore attuale del parametro i=1..7)
  • valRifi (valore di riferimento del parametro i=1..7)
  • soMini (soglia minima del parametro i=1..7)
  • soMaxi (soglia massima del parametro i=1..7)
  • effij (effetto del farmaco j=1..5 sul parametro i=1..7) [variazione/mg]
  • limFarj (limite massimo farmaco j=1..5 somministrabile) [mg]

Variabili

  • xj (quantità di farmaco j=1..5 da somministrare) [mg]
  • yi (valore del parametro i=1..7 dopo la cura)

Le variabili sono continue e non negative.

Funzione obiettivo

Bisogna minimizzare il massimo scostamento consentito dalla soglia. Introduciamo perciò una variabile ausiliaria z (che definiremo nei vincoli) che rappresenta il massimo degli scostamenti:

min z

Vincoli

  • vincolo sui valori minimi consentiti del parametro i
    yi >= soMini (per ogni i)
  • vincolo sui valori massimi consentiti del parametro i
    yi <= soMaxi (per ogni i)
  • vincolo sulle quantità massime di farmaco j somministrabile
    xj <= limFarj (per ogni j)
  • vincolo per mettere in relazione le cure prestate con i valori ottenuti
    dovremmo scrivere: valAtti - effij * xj = yi (per ogni i)
    ma dato che le incognite vanno scritte tutte a sinistra, lo riscriviamo come:
    effij * xj – yi = -valAtti (per ogni i)
  • definiamo ora la variabile ausiliaria z per gli scostamenti in eccesso. Nel testo ci viene detto come calcolarla, ma trattandosi di un rapporto si tradurrebbe in un'espressione non lineare. Trasformiamola in forma lineare:
    yi – (soMaxi – valRifi) * z <= valRifi (per ogni i)
  • definiamo infine la variabile ausiliaria z per gli scostamenti in difetto, anche in questo caso riesprimendola in forma lineare:
    yi + (valRifi – soMini) * z >= valRifi (per ogni i)

Lindizzazione del problema

! esercizio - Dosaggio farmaci

! variabili: x(j) = quantità di farmaco j da somministrare [mg]
! 	       y(i) = valore del parametro i dopo la cura
! le variabili sono continue e non negative

! funzione obiettivo
min z
! dove z è il massimo scostamento

st

! vincoli sui valori minimi consentiti
minVal1) y1 >= 7.00
minVal2) y2 >= 1700
minVal3) y3 >= 0.50
minVal4) y4 >= 1400
minVal5) y5 >= 8.0
minVal6) y6 >= 28
minVal7) y7 >= 80

! vincoli sui valori massimi consentiti
maxVal1) y1 <= 15.00
maxVal2) y2 <= 3500
maxVal3) y3 <= 1.30
maxVal4) y4 <= 2750
maxVal5) y5 <= 12.0     
maxVal6) y6 <= 41
maxVal7) y7 <= 160

! vincoli sulle quantità max di ogni farmaco [mg];
maxFar1) x1 <= 2.0
maxFar2) x2 <= 3.5
maxFar3) x3 <= 0.5
maxFar4) x4 <= 0.5
maxFar5) x5 <= 7.5

! vincoli per mettere in relazione cure prestate con valori ottenuti
param1) -0.2 x1 +0.5 x2 +0.7 x3 +0.1 x4 +0.2 x5 - y1 = -3.45
param2) 500 x1 +0.0 x2 -250 x3 +50 x4 +0.0 x5 - y2 = -1800
param3) +0.2 x1 -0.1 x2 +0.3 x3 +0.0 x4 +0.2 x5 - y3 = -0.05
param4) -80 x1 -120 x2 +15 x3 -90 x4 -100 x5 - y4 = -3200
param5) -8.5 x1 -7.0 x2 -1.0 x3 -3.0 x4 +1.0 x5 - y5 = -26.4
param6) +5 x1 -2 x2 +8 x3 -4 x4 +0 x5 - y6 = -35
param7) -5 x1 -1 x2 -2 x3 -3 x4 +4 x5 - y7 = -136

! vincoli per definire lo scostamento z...
! ...in eccesso...
scoEcc1) y1 - 3.00 z <= 12.0
scoEcc2) y2 - 1000 z <= 2500
scoEcc3) y3 - 0.50 z <= 0.80
scoEcc4) y4 - 750 z <= 2000
scoEcc5) y5 - 2.0 z <= 10.0
scoEcc6) y6 - 6 z <= 35
scoEcc7) y7 - 40 z <= 120

! ...e in difetto
scoDif1) y1 + 5.00 z >= 12.0
scoDif2) y2 + 800 z >= 2500
scoDif3) y3 + 0.30 z >= 0.80
scoDif4) y4 + 600 z >= 2000
scoDif5) y5 + 2.0 z >= 10.0
scoDif6) y6 + 7 z >= 35
scoDif7) y7 + 40 z >= 120

end

Altre domande

Nel caso in cui il paziente risultasse allergico ad uno dei farmaci (uno solo), fino a che punto potrebbe essere ridotta la quantità di farmaco senza compromettere la possibilità di rispettare i vincoli sulle soglie massima e minima per i parametri?

Dovremo fare l'analisi parametrica del problema considerando un farmaco per volta, fissando a 0 la quantità massima di farmaco somministrabile e osservando fino a quando i vincoli di ammissibilità sono rispettati. Facciamo un esempio su tutti, saltando il primo farmaco (che dalla soluzione vediamo che non è mai utilizzato, dato che ha costo ridotto 0) e passando direttamente al secondo.

RIGHTHANDSIDE PARAMETRICS REPORT FOR ROW: MAXFAR2

    VAR       VAR    PIVOT    RHS       DUAL PRICE      OBJ
    OUT       IN      ROW     VAL      BEFORE PIVOT     VAL

                            3.50000      0.000000E+00  0.999623
 SLK   17  SLK   34     2   3.48571      0.000000E+00  0.999623
 SLK    3  SLK   36    34   3.47634      0.402597E-01   1.00000
 SLK    2  SLK   35    12   3.47634      0.463609E-01   1.00000
 SLK    6  SLK   39    30   3.47634      0.363281       1.00000
 SLK   11  ART         21   3.47634      0.422727       1.00000
                           0.000000E+00   +INFINITY   INFEASIBLE

Quindi il valore minimo consentito è di 3.47634.
Ripetiamo la stessa operazione per gli altri farmaci e ci risulterà che per il terzo farmaco il valore è 0.450929, per il quarto farmaco è 0.191030, e per l'ultimo farmaco è 7.27467.


Torna alla pagina di Ricerca Operativa