• Non ci sono risultati.

Lezione n°11

N/A
N/A
Protected

Academic year: 2021

Condividi "Lezione n°11"

Copied!
26
0
0

Testo completo

(1)

Lezione n

°

11

Algoritmo del Simplesso:

- Passi fondamentali

- Esempio

Lezioni di Ricerca Operativa

Corso di Laurea in Informatica ed Informatica Applicata

Università di Salerno

(2)

Consideriamo il problema (PL) in

Forma Standard

0

min

³

=

=

x

b

x

A

x

c

z

T

Data una base B ammissibile, riscriviamo il problema come:

Calcolo della soluzione ottima di un problema di PL.

min z = z

0

(z

j

− c

j

)x

j

j∈N

x

B

= b −

y

j

x

j

j∈N

x ≥ 0

y

j

= A

B

−1

a

j

z

j

= c

B

T

A

B

−1

a

j

b = A

B

−1

b

z

0

= c

B

T

A

B

−1

b

(3)

5. Teorema (Condizione di ottimalità)

Una soluzione di base non degenere di un

problema di PL è ottima se e solo se:

le)

migliorabi

(non

0

2)

le)

(ammissibi

0

1)

N

j

c

z

B

i

b

j

j

i

Î

"

£

"

³

(4)

Scelta della variabile entrante

.

Quando le condizioni di ottimalità non sono verificate

è sempre possibile scegliere una variabile fuori base

x

k

da portare in base per migliorare l’obiettivo.

Quando esistono più alternative la scelta non preclude

il raggiungimento della soluzione ottima, ma può al

peggio aumentare il tempo necessario per la sua

ricerca.

(5)

Il metodo del gradiente

Sceglie la variabile fuori base x

k

che localmente fa

aumentare più rapidamente l’obiettivo:

{

j

j

}

N

j

k

k

c

z

c

z

-

=

max

(6)

Scelta della variabile uscente.

Determinata la variabile fuori base x

k

da portare in base, si

deve scegliere la variabile uscente.

Esistono due situazioni alternative:

a)

y

ik

£0 "i=1,...m

La soluzione del problema è illimitata

(

non esiste un

punto di ottimo

).

In questo caso facendo aumentare x

k

il valore di nessuna

variabile di base diminuisce:

Per qualsiasi valore di x

k

0

0

(

z

c

)

x

z

z

z

=

-

k

-

k

k

£

b)

y

rk

>0 per almeno un r

La soluzione di base non è ottima, bisogna quindi

passare alla base successiva.

(7)

Nota

Se una variabile di base x

Bi

è nulla (soluzione

degenere) e y

ik

>0, allora x

k

entra in base con valore

nullo.

In questo caso la soluzione non cambia, ed in

particolare rimane degenere.

Per questa ragione la ricerca della soluzione

potrebbe rimanere bloccata generando sempre la

medesima soluzione (

cycling

).

Il cycling è piuttosto raro e comunque esistono

(8)

L

algoritmo del Simplesso

INPUT

:

Problema di PL (in forma standard) e una soluzione di base ammissibile.

1.Test di ottimalità:

Se z

j

-c

j

≤0 "jÎN allora la soluzione corrente è ottima e l’algoritmo termina.

Altrimenti andare al passo 2.

2.Scelta della variabile entrante in base:

Scegliere una variabile fuori base x

k

tale che z

k

-c

k

>0 ed andare al passo 3.

3.Test di illimitatezza:

Se y

ik

£0 "i=1,...m, allora la soluzione del problema è illimitata (non esiste ottimo

finito), e l’algoritmo termina. Altrimenti vai al Passo 4.

4.Scelta della variabile uscente dalla base: Test dei minimi rapporti

Scegliere la variabile x

r

tale che:

x

r

è la variabile uscente e la variabile entrante x

k

assume valore pari a

5.Aggiornamento della base:

Aggiornare gli indici delle variabili in base (B) e quelli delle variabili fuori base (N).

Tornare al passo 1.

rk

r

y

b

b

r

y

rk

= min

1

im

b

i

y

ik

: y

ik

> 0

(9)

Esempio: Applicazione del Simplesso

0

5

2

1

2

2

min

2

1

2

1

2

1

2

1

³

£

+

+

-=

x

x

x

x

x

x

x

x

x

z

0

,

0

,

0

0

5

2

1

2

2

min

5

4

3

5

2

1

4

2

1

3

2

1

2

1

³

³

³

³

=

+

+

=

+

+

-=

+

+

-=

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

z

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

1

0

0

1

1

0

1

0

1

1

-0

0

1

1

2

-A

B

=

{

3,4,5

}

N

=

{ }

1,2

(10)

Esempio: Applicazione del Simplesso (Cont.)

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

1

0

0

0

1

0

0

0

1

B

A

x

B

A b

B

1

x

B

Ib

x

B

b

-=

Û

=

Û

=

3

-1

4

B

5

1 0 0

1

A b

0 1 0 2

0 0 1

5

x

x

x

é ù

é

ù é ù

ê ú

=

=

ê

ú ê ú

ê ú

ê

ú ê ú

ê ú

ê

ë

ú ê ú

û ë û

ë û

5

,

2

,

1

4

5

3

=

x

=

x

=

x

[

]

0

5

2

1

0

0

0

0

=

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

z

5

4

3

x

x

x

b

A

c

z

0

=

T

B

B

-

1

(11)

Esempio: Applicazione del Simplesso (Cont.)

Test di Ottimalità: calcolo di z

j

– c

j

per j ÎN

[

]

(

1

)

0

1

1

1

1

2

I

0

0

0

)

(

1

1

-

-

=

+

=

ú

ú

ú

û

ù

ê

ê

ê

ë

é

-=

- c

z

[

]

(

2

)

0

2

2

1

1

1

I

0

0

0

)

(

2

2

-

-

=

+

=

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

- c

z

{

3,4,5

}

N

{ }

1,2

B

=

=

N

j

c

a

A

c

c

-z

j

j

=

T

B

B

-1

j

-

j

"

Î

(12)

Esempio: Applicazione del Simplesso (Cont.)

{

}

max

{ }

{

(

),

(

)

}

max

)

(

1

1

2

2

2

,

1

2

2

c

z

c

z

c

z

c

z

j

j

j

N

j

-

Û

-

-=

Î

{ }

1

,

2

2

max

)

(

z

2

- c

2

=

=

x

2

entra in base

Quale variabile esce dalla base?

Regola del minimo rapporto:

j

B

j

A

a

y

=

-

1

b

A

b

=

B

-

1

b

r

y

rk

= min

1

im

b

i

y

ik

: y

ik

> 0

(13)

Esempio: Applicazione del Simplesso (Cont.)

-1

2

B

2

1

1

A a I 1

1

1

1

y

é ù é ù

ê ú ê ú

=

=

ê ú ê ú

=

ê ú ê ú

ë û ë û

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

ú

ú

ú

ú

û

ù

ê

ê

ê

ê

ë

é

=

ú

ú

ú

û

ù

ê

ê

ê

ë

é

5

2

1

3

2

1

5

4

3

b

b

b

x

x

x

x

3

esce dalla base; x

2

entra in base con valore 1

Nuova base:

B

=

{

2,4,5

}

N

=

{ }

1,3

x

2

=

b

1

y

12

= min

1

im

b

i

y

ik

: y

ik

> 0

) x

2

= 1 = min

1

1

,

2

1

,

5

1

(14)

Esempio: Applicazione del Simplesso (Cont.)

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

1

0

1

0

1

1

0

0

1

B

A

Calcoliamo

A

B

-

1

5

4

2

x

x

x

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

-1

0

1

-0

1

1

-0

0

1

1

B

A

(15)

Esempio: Applicazione del Simplesso (Cont.)

1

B

B

x

=

A b

ú

ú

û

ù

ê

ê

ê

ë

é

=

ú

ú

ú

û

ù

ê

ê

ê

ë

é

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

=

ú

ú

ú

û

ù

ê

ê

ê

ë

é

-4

1

1

5

2

1

1

0

1

-0

1

1

-0

0

1

1

5

4

2

b

A

x

x

x

B

[

]

[

]

2

5

2

1

0

0

2

-5

2

1

1

0

1

-0

1

1

-0

0

1

0

0

2

-0

=

ú

ú

û

ù

ê

ê

ê

ë

é

=

ú

ú

ú

û

ù

ê

ê

ê

ë

é

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

z

b

A

c

z

0

=

T

B

B

-

1

(16)

Esempio: Applicazione del Simplesso (Cont.)

Test di Ottimalità: calcolo di z

j

– c

j

per j ÎN

{

2,4,5

}

N

{ }

1,3

B

=

=

[

]

[

]

1

5

1

1

2

0

0

2

-)

1

(

1

1

2

1

0

1

-0

1

1

-0

0

1

0

0

2

-)

(

1

1

+

=

ú

ú

ú

û

ù

ê

ê

ê

ë

é

-=

ú

ú

û

ù

ê

ê

ê

ë

é

ú

ú

û

ù

ê

ê

ê

ë

é

=

- c

z

[

]

[

]

0

2

0

0

1

0

0

2

-0

0

0

1

1

0

1

-0

1

1

-0

0

1

0

0

2

-)

(

3

3

-

=

ú

ú

û

ù

ê

ê

ê

ë

é

=

ú

ú

û

ù

ê

ê

ê

ë

é

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

- c

z

N

j

c

a

A

c

c

-z

j

j

=

T

B

B

-1

j

-

j

"

Î

(17)

Esempio: Applicazione del Simplesso (Cont.)

z

j

– c

j

> 0 per j=1

x

1

entra in base

Quale variabile esce dalla base?

Regola del minimo rapporto:

j

B

j

A

a

y

=

-

1

b

A

b

=

B

-

1

b

r

y

rk

= min

1

im

b

i

y

ik

: y

ik

> 0

(18)

Esempio: Applicazione del Simplesso (Cont.)

-1

1

B

1

1 0 0

-2

-2

A a

-1 1 0 -1

1

-1 0 1

1

3

y

é

ù é ù é ù

ê

ú ê ú ê ú

=

=

ê

ú ê ú ê ú

=

ê

ú ê ú ê ú

ë

û ë û ë û

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

ú

ú

ú

ú

û

ù

ê

ê

ê

ê

ë

é

=

ú

ú

ú

û

ù

ê

ê

ê

ë

é

4

1

1

3

2

1

5

4

2

b

b

b

x

x

x

x

4

esce dalla base; x

1

entra in base con valore 1

Nuova base:

B

=

{

2,1,5

}

N

=

{ }

4,3

x

1

=

b

2

y

21

= min

1

im

b

i

y

ik

: y

ik

> 0

) x

1

= 1 = min

1

1

,

4

3

(19)

Esempio: Applicazione del Simplesso (Cont.)

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

1

1

1

0

1

1

0

2

1

-A

B

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

-1

3

2

0

1

1

-

0

2

1

-

1

B

A

Calcoliamo

A

B

-

1

5

1

2

x

x

x

(20)

Esempio: Applicazione del Simplesso (Cont.)

1

B

B

x

=

A b

ú

ú

û

ù

ê

ê

ê

ë

é

=

ú

ú

ú

û

ù

ê

ê

ê

ë

é

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

=

ú

ú

ú

û

ù

ê

ê

ê

ë

é

-1

1

3

5

2

1

1

3

2

0

1

1

-

0

2

1

-

1

5

1

2

b

A

x

x

x

B

[

]

[

]

7

5

2

1

0

5

3

5

2

1

1

3

2

0

1

1

-

0

2

1

-

0

1

2

-0

=

ú

ú

û

ù

ê

ê

ê

ë

é

=

ú

ú

ú

û

ù

ê

ê

ê

ë

é

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

z

b

A

c

z

0

=

T

B

B

-

1

(21)

Esempio: Applicazione del Simplesso (Cont.)

Test di Ottimalità: calcolo di z

j

– c

j

per j ÎN

{

2,1,5

}

N

{ }

4,3

B

=

=

[

]

[

]

0

3

0

0

1

0

5

3

0

0

0

1

1

3

2

0

1

1

-

0

2

1

-

0

1

2

-)

(

3

3

-

=

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

ú

ú

û

ù

ê

ê

ê

ë

é

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

- c

z

[

]

[

]

0

5

0

1

0

0

5

3

0

0

1

0

1

3

2

0

1

1

-

0

2

1

-

0

1

2

-)

(

4

4

-

=

ú

ú

û

ù

ê

ê

ê

ë

é

=

ú

ú

û

ù

ê

ê

ê

ë

é

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

- c

z

N

j

c

a

A

c

c

-z

j

j

=

T

B

B

-1

j

-

j

"

Î

(22)

Esempio: Applicazione del Simplesso (Cont.)

z

j

– c

j

> 0 per j=3

x

3

entra in base

Quale variabile esce dalla base?

Regola del minimo rapporto:

j

B

j

A

a

y

=

-

1

b

A

b

=

B

-

1

b

r

y

rk

= min

1

im

b

i

y

ik

: y

ik

> 0

(23)

Esempio: Applicazione del Simplesso (Cont.)

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

ú

ú

ú

û

ù

ê

ê

ê

ë

é

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

=

2

1

-1

-0

0

1

1

3

2

0

2

1

-0

1

1

-a

A

-

B

1

3

3

y

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

ú

ú

ú

ú

û

ù

ê

ê

ê

ê

ë

é

=

ú

ú

ú

û

ù

ê

ê

ê

ë

é

1

3

1

3

2

1

5

1

2

b

b

b

x

x

x

x

5

esce dalla base; x

3

entra in base con valore 1/2

Nuova base:

B

=

{

2,1,3

}

N

=

{ }

4,5

x

3

=

b

3

y

33

= min

1

im

b

i

y

ik

: y

ik

> 0

) x

3

=

1

2

= min

1

2

(24)

Esempio: Applicazione del Simplesso (Cont.)

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

0

1

1

0

1

1

1

2

1

B

A

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

-2

1

2

3

1

2

1

2

1

0

2

1

2

1

0

1

B

A

Calcoliamo

A

B

-

1

3

1

2

x

x

x

(25)

Esempio: Applicazione del Simplesso (Cont.)

1

B

B

x

=

A b

ú

ú

û

ù

ê

ê

ê

ë

é

=

ú

ú

ú

û

ù

ê

ê

ê

ë

é

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

=

ú

ú

ú

û

ù

ê

ê

ê

ë

é

-2

1

2

3

2

7

5

2

1

2

1

2

3

1

2

1

2

1

0

2

1

2

1

0

1

3

1

2

b

A

x

x

x

B

[

]

[

]

2

17

5

2

1

2

3

2

1

0

5

2

1

2

1

2

3

1

2

1

2

1

0

2

1

2

1

0

0

1

2

-0

=

ú

ú

û

ù

ê

ê

ê

ë

é

=

ú

ú

ú

û

ù

ê

ê

ê

ë

é

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

z

b

A

c

z

0

=

T

B

B

-

1

(26)

Esempio: Applicazione del Simplesso (Cont.)

Test di Ottimalità: calcolo di z

j

– c

j

per j ÎN

{

2,1,3

}

N

{ }

4,5

B

=

=

[

]

[

]

2

1

0

0

1

0

2

3

2

1

0

0

0

1

0

2

1

2

3

1

2

1

2

1

0

2

1

2

1

0

0

1

2

-)

(

4

4

-

=

ú

ú

û

ù

ê

ê

ê

ë

é

=

ú

ú

û

ù

ê

ê

ê

ë

é

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

- c

z

[

]

[

]

2

3

0

1

0

0

2

3

2

1

0

0

1

0

0

2

1

2

3

1

2

1

2

1

0

2

1

2

1

0

0

1

2

-)

(

5

5

-

=

ú

ú

û

ù

ê

ê

ê

ë

é

=

ú

ú

û

ù

ê

ê

ê

ë

é

ú

ú

ú

û

ù

ê

ê

ê

ë

é

=

- c

z

N

j

c

a

A

c

c

-z

j

j

=

T

B

B

-1

j

-

j

"

Î

Riferimenti

Documenti correlati

SY ANTEX, l’ibrido super produttivo con granella di qualità, ideale per la razione dei monogastrici...

145/2013 (contratti stipulati con università, enti di ricerca e organismi equiparati per il diretto svolgimento delle attività di ricerca e sviluppo ammissibili al credito

Come sappiamo bene, la Risoluzione 75 (7) consta di tre principi generali connessi al risarcimento totale del danno in diritto civile e dai quali traspare la necessità di valutare e

Parte dell'energia della palla si è quindi trasformata in

L'accesso alla rete telefonica è il più diffuso tipo di accesso, dal momento che il servizio telefonico è stato il primo ad essere ingegnerizzato (1892: automatizzazione

Nelle liste richieste occorre elencare le sigle delle regole nell’ordine che corrisponde alla se- quenza di applicazione: la prima (a sinistra) della lista deve essere la sigla

Nelle liste richieste le sigle delle regole sono elencate nell’ordine che corrisponde alla sequenza di applicazione: la prima (a sinistra) della lista deve essere la sigla

- Assumere la doxiciclina per tutta la durata stabilita della terapia (l’assunzione irregolare può anche aumentare il rischio di infezione creando resistenze agli antibiotici);. -