cerca
Ricerca Operativa - PLI - Segherie - 11.01.00
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Ricerca Operativa - PLI - Segherie - 11.01.00

Torna alla pagina di Ricerca Operativa


 :: Ricerca Operativa - PLI - Segherie - 11.01.00 ::

Testo del problema

I tronchi tagliati nei boschi di una regione quadrata vengono portati in punti di raccolta da cui poi devono essere trasferiti nelle segherie. L'azienda che gestisce le segherie deve decidere dove aprire le segherie e in quale di esse far trasportare i tronchi da ogni punto di raccolta. Le località in cui è possibile aprire le segherie sono state individuate; le posizioni dei punti di raccolta sono date. In ciascuna delle località che potrebbero ospitare una segheria ci sono delle limitazioni di spazio e altri fattori che ne limiterebbero la capacità e ne influenzerebbero i costi di funzionamento e manutenzione.
Inoltre, poiché la stessa azienda deve anche eseguire il trasporto dei tronchi dai punti di raccolta alle segherie, occorre minimizzare i relativi costi di trasporto, che sono proporzionali alle quantità trasportate e alle distanze percorse (in linea d'aria, poiché la zona è estremamente impervia ed il trasporto avviene tramite elicotteri).
Formulare e classificare il problema e risolverlo con i dati del file SEGHERIE.TXT.

Dati

Le coordinate dei 15 punti di raccolta del legname sono le seguenti, 
espresse come frazione del lato del quadrato che delimita la regione 
(lato di 100 km).
Ogni punto di raccolta ha associata una quantità di legname fornito.

 posizione   quantita'
            (quintali 
           giornalieri)
 0.40 0.66     58
 0.76 0.17     35
 0.11 0.47     27
 0.65 0.58     42
 0.18 0.88     60
 0.19 0.02     31
 0.62 0.62     18
 0.90 0.17     24
 0.66 0.95     36
 0.42 1.00     37
 0.95 0.12     48
 0.16 0.26     39
 0.07 0.71     53
 0.75 0.43     61
 0.30 0.76     29

I costi di trasporto giornalieri sono pari a 10000 Lire per ogni km 
e per ogni quintale.

Le possibili localizzazioni delle segherie sono 5:

 Posizione   Costi di manutenzione      Capacita'
          e funzionamento giornalieri  (quintali
             (in migliaia di lire)     al giorno)
 0.25 0.20           3000                 190 
 0.55 0.25           4500                 240
 0.90 0.15           3000                 200
 0.15 0.45           4400                 220
 0.85 0.55           4600                 190

Formulazione del problema

Dati

  • pr = 15 (numero dei punti di raccolta del legname)
  • assexPi (coordinata x del punto di raccolta i=1..15)
  • asseyPi (coordinata y del punto di raccolta i=1..15)
  • lato = 100 (lunghezza del lato della regione) [km]
  • qli (quantità di legname raccolto nel punto di raccolta i=1..15) [quintali/giorno]
  • costi = 10000 (costi di trasporto giornalieri per ogni km e per ogni quintale) [€]
  • ps = 5 (numero di possibili segherie)
  • assexSj (coordinata x della possibile segheria j=1..5)
  • asseySj (coordinata y della possibile segheria j=1..5)
  • manFunj (costi di manutenzione e funzionamento della possibile segheria j=1..5) [€/giorno]
  • '''capaj (capacità della possibile segheria j=1..5) [quintali/giorno]

Variabili

  • xj (indica se la segheria j=1..5 esiste o no) (binaria)
  • yij (quantità di legname trasportato dal punto di raccolta i=1..15 alla segheria j=1..5) [quintali/giorno]
  • zij (distanza tra il punto di raccolta i=1..15 e la segheria j=1..5) [km]
    Notare che questa variabile si può calcolare dai dati come:
    zij = radiceQuadrata ((assexPi – assexSi)2 + (asseyPi - asseySi)2)

Funzione obiettivo

min (yij * costi * zij * qli) + (xj * manFunj)

Vincoli

  • vincolo sulla quantità di legname che non deve superare il limite di capacità:
    ((somma)i yij) <= capaj (per ogni j)
  • vincolo che imponga che ogni punto di raccolta sia servito:
    ((somma)j yij) > 0 (per ogni i)

Lindizzazione del problema

! esercizio - Segherie

! variabili: x(i) = indica se la segheria esiste o no (binaria)
!	     y(i,j) = quantità di legname trasportato da i a j
! la variabile y è continua e non negativa

! funzione obiettivo
min  	+ 3000 x1 + 4500 x2 + 3000 x3 + 4400 x4 + 4600 x5
 	+ 28062.65 y11 + 25321.50 y12 + 41424.35 y13 + 18936.80 y14 
	+ 26868.46 y15 + 17880.86 y21 + 7865.27 y22 + 4949.75 y23 
	+ 23491.75 y24 + 13667.94 y25 + 8211.73 y31 + 13282.24 y32 
	+ 23013.44 y33 + 1207.48 y34 + 20096.42 y35 + 23172.43 y41 
	+ 14482.39 y42 + 20890.51 y43 + 21698.19 y44 + 8493.97 y45
 	+ 41015.61 y51 + 43836.97 y52 + 61519.75 y53 + 25862.71 y54 
	+ 44811.61 y55 + 5881.84 y61 + 13243.21 y62 + 22375.90 y63 
	+ 13387.55 y64 + 26240.36 y65 + 10075.18 y71 + 6778.14 y72 
	+ 9847.50 y73 + 8996.40 y74 + 4327.49 y75 + 15616.61 y81 
	+ 8616.64 y82 + 480.00 y83 + 19213.50 y84 + 9198.61 y85
	+ 30771.05 y91 + 25509.25 y92 + 30068.08 y93 + 25711.66 y94 
	+ 15941.94 y95 + 30260.93 y101 + 28163.78 y102 + 36118.14 y103 
	+ 22669.86 y104 + 23029.34 y105 + 33818.72 y111 + 20188.55 y112 
	+ 2798.86 y113 + 41538.72 y114 + 21190.79 y115 + 4218.49 y121 
	+ 15215.00 y122 + 29177.11 y123 + 7420.26 y124 + 29190.14 y125
 	+ 28664.13 y131 + 35236.03 y132 + 53066.21 y133 + 14417.56 y134 
	+ 42200.78 y135 + 33572.17 y141 + 16413.42 y142 + 19376.50 y143 
	+ 36620.33 y144 + 9528.50 y145 + 16304.60 y151 + 16471.39 y152 
	+ 24813.22 y153 + 9987.12 y154 + 17073.10 y155

st

! vincoli sulla quantità di legname
quant1) 58 y11 + 35 y21 + 27 y31 + 42 y41 + 60 y51 + 31 y61 
	+ 18 y71 + 24 y81 + 36 y91 + 37 y101 + 48 y111 
	+ 39 y121 + 53 y131 + 61 y141 + 29 y151 - 190 x1 <= 0
quant2) 58 y12 + 35 y22 + 27 y32 + 42 y42 + 60 y52 + 31 y62 
	+ 18 y72 + 24 y82 + 36 y92 + 37 y102 + 48 y112 
	+ 39 y122 + 53 y132 + 61 y142 + 29 y152 - 240 x2 <= 0
quant3) 58 y13 + 35 y23 + 27 y33 + 42 y43 + 60 y53 + 31 y63 
	+ 18 y73 + 24 y83 + 36 y93 + 37 y103 + 48 y113 
	+ 39 y123 + 53 y133 + 61 y143 + 29 y153 - 200 x3 <= 0
quant4) 58 y14 + 35 y24 + 27 y34 + 42 y44 + 60 y54 + 31 y64 
	+ 18 y74 + 24 y84 + 36 y94 + 37 y104 + 48 y114 
	+ 39 y124 + 53 y134 + 61 y144 + 29 y154 - 220 x4 <= 0
quant5) 58 y15 + 35 y25 + 27 y35 + 42 y45 + 60 y55 + 31 y65 
	+ 18 y75 + 24 y85 + 36 y95 + 37 y105 + 48 y115 
	+ 39 y125 + 53 y135 + 61 y145 + 29 y155 - 190 x5 <= 0

! vincoli sui punti di raccolta
racSe1) y11 + y12 + y13 + y14 + y15 = 1
racSe2) y21 + y22 + y23 + y24 + y25 = 1
racSe3) y31 + y32 + y33 + y34 + y35 = 1
racSe4) y41 + y42 + y43 + y44 + y45 = 1
racSe5) y51 + y52 + y53 + y54 + y55 = 1
racSe6) y61 + y62 + y63 + y64 + y65 = 1
racSe7) y71 + y72 + y73 + y74 + y75 = 1
racSe8) y81 + y82 + y83 + y84 + y85 = 1
racSe9) y91 + y92 + y93 + y94 + y95 = 1
racSe10) y101 + y102 + y103 + y104 + y105 = 1
racSe11) y111 + y112 + y113 + y114 + y115 = 1
racSe12) y121 + y122 + y123 + y124 + y125 = 1
racSe13) y131 + y132 + y133 + y134 + y135 = 1
racSe14) y141 + y142 + y143 + y144 + y145 = 1
racSe15) y151 + y152 + y153 + y154 + y155 = 1

end

! definiamo binarie le variabili x(i)
int x1
int x2
int x3
int x4
int x5

Torna alla pagina di Ricerca Operativa