Pages: [1]   Go Down
Print
Author Topic: dubbio esercizio simplesso duale  (Read 1731 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
rabbit
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 136



« on: 30-01-2011, 11:20:53 »

Ciao ragazzi,
qualcuno si è cimentato in questo esercizio?
min(10x1+5x2+4x3)
3x1+2x2-3x3>=3
4x1+2x3>=10
xi>=0 i=1..3
da risolvere con il simplesso duale.

Col metodo delle due fasi la f.o vale 24, x*=(2, 0, 1);
Se qualcuno si confronta con l'esercizio e lo risolve, lo posti pure. Gliene sarei grato  
Saluti
« Last Edit: 01-02-2011, 10:30:37 by rabbit » Logged
beaver
Matricola
*
Offline Offline

Posts: 70


WWW
« Reply #1 on: 01-02-2011, 15:02:08 »

a me (ed octave) viene il tuo stesso risultato
ma non ho usato il metodo delle due fasi,
ho cambiato il segno dei due vincoli
Code:
octave:2> c = [10 5 4]'
c =

   10
    5
    4

octave:3> A = [3 2 -3 -1 0 3 ; 4 0 2 0 -1 10]
A =

    3    2   -3   -1    0    3
    4    0    2    0   -1   10

octave:4> A = -1*A
A =

   -3   -2    3    1   -0   -3
   -4   -0   -2   -0    1  -10

octave:7> cb = [0 0]'
cb =

   0
   0

octave:8> cn = c
cn =

   10
    5
    4

octave:9> c = [c; 0; 0]
c =

   10
    5
    4
    0
    0

octave:11> z = (cb' * A)'
z =

   0
   0
   0
   0
   0
   0

octave:12> r = [c;0] - z
r =

   10
    5
    4
    0
    0
    0

octave:13> # esce x4
octave:13> # entra la variabile che minimizza
octave:13> # il rapporto seguente
octave:15> r(1)/abs(A(1,1))
ans =  3.3333
octave:16> r(2)/abs(A(1,2))
ans =  2.5000
octave:17> # entra x2
octave:18> R11 = [-1/2 0; 0 1]
R11 =

  -0.50000   0.00000
   0.00000   1.00000

octave:19> A1 = R11 * A
A1 =

    1.50000    1.00000   -1.50000   -0.50000    0.00000    1.50000
   -4.00000    0.00000   -2.00000    0.00000    1.00000  -10.00000

octave:20> cb1 = [c(2) c(5)]'
cb1 =

   5
   0

octave:21> cn1 = [c(1) c(3:4)' 0]'
cn1 =

   10
    4
    0
    0

octave:23> z1 = (cb1' * A1)'
z1 =

   7.50000
   5.00000
  -7.50000
  -2.50000
   0.00000
   7.50000

octave:24> r1 = [c;0] - z1
r1 =

    2.50000
    0.00000
   11.50000
    2.50000
    0.00000
   -7.50000

octave:25> # costi ridotti positivi
octave:25> # b2 ancora negativo
octave:25> # esce dalla base x5
octave:25> # entra quella che minimizza il rapporto
octave:25> r1(1)/abs(A1(2,1))
ans =  0.62500
octave:26> r1(3)/abs(A1(2,3))
ans =  5.7500
octave:27> # entrerà allora x1
octave:27> R22 = [1 0; 0 -1/4]
R22 =

   1.00000   0.00000
   0.00000  -0.25000

octave:30> R12 = [ 1 -3/2; 0 1]
R12 =

   1.00000  -1.50000
   0.00000   1.00000

octave:31> R2 = R12 * R22
R2 =

   1.00000   0.37500
   0.00000  -0.25000

octave:32> A2 = R2 * A1
A2 =

   0.00000   1.00000  -2.25000  -0.50000   0.37500  -2.25000
   1.00000   0.00000   0.50000   0.00000  -0.25000   2.50000

octave:35> cb2 = [c(2) c(1)]'
cb2 =

    5
   10

octave:36> z2 = (cb2' * A2)'
z2 =

   10.00000
    5.00000
   -6.25000
   -2.50000
   -0.62500
   13.75000

octave:37> r2 = [c;0] - z2
r2 =

    0.00000
    0.00000
   10.25000
    2.50000
    0.62500
  -13.75000

octave:38> # esce x2
octave:38> r2(3)/abs(A2(1,3))
ans =  4.5556
octave:39> r2(4)/abs(A2(1,4))
ans =  5
octave:40> # entra x3
octave:41> R23 = [1 0; -1/2 1]
R23 =

   1.00000   0.00000
  -0.50000   1.00000

octave:45> R13 = [-4/9 0; 0 1]
R13 =

  -0.44444   0.00000
   0.00000   1.00000

octave:46> R3 = R23 * R13
R3 =

  -0.44444   0.00000
   0.22222   1.00000

octave:47> A3 = R3 * A2
A3 =

   0.00000  -0.44444   1.00000   0.22222  -0.16667   1.00000
   1.00000   0.22222   0.00000  -0.11111  -0.16667   2.00000

octave:48> cb3 = [c(3) c(1)]'
cb3 =

    4
   10

octave:49> z3 = (cb3' * A3)'
z3 =

   10.00000
    0.44444
    4.00000
   -0.22222
   -2.33333
   24.00000

octave:50> r3 = [c;0] - z3
r3 =

    0.00000
    4.55556
    0.00000
    0.22222
    2.33333
  -24.00000
Logged
rabbit
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 136



« Reply #2 on: 01-02-2011, 18:41:35 »

fila..altro che..Ho fatto un bell'erroretto col criterio di entrata del duale..meee

ehi grazie!
Logged
beaver
Matricola
*
Offline Offline

Posts: 70


WWW
« Reply #3 on: 01-02-2011, 23:26:41 »

octave è bravo a farsi i conti
io no

nel compito non ricordo di essere arrivato allo stesso risultato
chissà che cosa ho combinato.
Logged
rabbit
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 136



« Reply #4 on: 02-02-2011, 10:18:39 »

scoprilo..e in bocca al lupo
Logged
Pages: [1]   Go Up
Print
Jump to: