Escolar Documentos
Profissional Documentos
Cultura Documentos
21 + 2 + 3 2
eq. [1]
21 + 2 + 3 2
eq. [2]
21 + 2 + 3 2
eq. [3]
31 + 2 + 33 = Z
eq. [4]
Maio de 2015
ALGORITMO SIMPLEX
Mestrado em Engenharia Eltrica
Paso 0:
O usurio tem que declarar os valores das matrizes requeridas
para o a analisesanlises, as quais so chamadas a, b e z.
A matriz a, tem que ser quadrada e seus valores todos positivos sendo de
caratersticas expressadas matematicamente como:
a Rmxm
A matriz b que tem os valores de:
b Rmx1
A matriz z que tem os valores de:
z R1xm
A partir delas se procede a criar a matriz cannica, a qual ter a dimenso
de Rm+1x2m+1 a qual, que a base para o a analise anlise de maximizao.
Passo 1: Como se trata de um problema de maximizao, o primeiro
aspecto para o a analise anlise so os valores da equao de otimizao.
Sendo, sim todos eles so negativos, j se conclu conclua-se que j que
uma soluo tima y e no precisa de nenhum clculo matricial.
Passo 2:
A seguir requeridorequer-se determinar o valor a ser
considerado como piv dentro do algoritmo simplex. Determina ,
determine-se o termo menor inferior a 0 na linha m+1 da matriz
cannica. Em seguida, , depois na coluna onde fica o nmero mencionado,
calculecalcula-se a razo aritmtica dos termos da ltima coluna com a
coluna selecionada anteriormente, mantendo a mesma linha para o clculo.
O, o resultado obtido vai serser armazenado no vetor div, o qual, por
meio atravs da funo min( ), gera a posio do menor valor positivo do
vetor analisado; assim foi obtidoobtm-se os valores de p e q,
indispensveis para o seguinte passo do da programao.
Passo 3:
Determinado a o endereo do piv, procede-se ao clculo de
cadaum a um os termos da nova matriz, a qual tem como objetivo
determinar um valor de maximizao para uma das variveis expressadas
na equao de otimizao [4], sendo a base para a iterao o expressado
nas equaes [5] e [6] que vo em coincidncia dos sub ndices i e p.
Maio de 2015
ALGORITMO SIMPLEX
Mestrado em Engenharia Eltrica
Y 'ij =Y ij
Y 'ij =
Y pj
Y i p
Y pq iq
Y pj
i=p
Y pq
[5]
[6]
(1)
A linha descrita na expresso (1) o texto da funo que tem que ser
digitada no MATLAB e, arroja lana como resultado as matrizes C,B,Z que
so a resposta do algoritmo de otimizao. Sendo:
C: a matriz cannica gerada y resultante depois do pivotao do termo
selecionado.
B: a matriz resposta que contm os valores para os termos de x1 at x2m-1.
Z: a resposta obtida para a equao de maximizao depois de substituir
os termos de x na expresso objeto do analises.
Resultados
i)
[ ] []
2 1 1
2
a= 1 2 3 b= 5 z=[ 3 1 3 ]
2 2 1
6
(2)
Maio de 2015
ALGORITMO SIMPLEX
C=
1
0
0
0
1
5
3
5
1
7
5
3
5
1
1
5
0 1
6
0
5
1
5
2
5
0
3
5
0
0
1
0
1
5
8
5
4
27
5
]
(3)
B=
1
5
8
5
0 0 4
[ ]
Z=
27
5
]
(4)
Maio de 2015
ALGORITMO SIMPLEX
Mestrado em Engenharia Eltrica
0
0
C=
1
0
]
(3)
Z =[1,095 ]
Concluso
A anlise dos valores obtidos aponta como concluso que o
processo de clculo de uma soluo bsica fatvel facilmente
desenhado bajo em plataformas de programao disponveis e
fornecem uma eficincia y garantiacom eficincia e garantia
bastante confivelconfiveis.
Uma anlise dos dados gerados para o exemplo (ii), foi feito feita
para um caso real de analises anlise pessoalparticular, que
Maio de 2015
ALGORITMO SIMPLEX
Mestrado em Engenharia Eltrica
Maio de 2015
ALGORITMO SIMPLEX
Mestrado em Engenharia Eltrica
ANEXO 1
function [ canonic,Z,ZT ] = otimsimplex( a,b,z )
%otimsimplex
%
% Avalua um problema de otimizao para obter
% uma soluo bsica factvel.
%
% Sintaxes
% [A,B,ZT]=Otimsimplex(a,b,z)
%
% Descrio
%
% [A,B,ZT]=Otimsimplex(a,b,z)
%otimiza uma equao z para a sujeito a Ax=b e x >= 0
%
% Observaes
% As caractersticas das matrizes tm que ser
% A Rnxn >= 0 e B Rnx1 e Z R1xn
div=0;
i=0;
canonic=cat(2,a,eye(size(a)),b);
z=-z;
z=cat(2,z,zeros(1,length(canonic)-length(z)));
canonic=cat(1,canonic,z);
columna=-1;
[r,t]=size(canonic);
X=zeros(1,t);
Z=zeros(1,t-1);
if find(b>0)~=0
while columna <0
vectorz=canonic(r,:);
[~,q]=min(vectorz);
Construo da
matriz cannica a
partir das matrizes
a b e c, e
obteno dos
valores p e q
que so as direes
for p=1:r-1;
div(p,1)=canonic(p,t)/canonic(p,q);
end
[y1,y2,y3]=find(div>0);
for i=1:y1
div1(y1)=div(y1);
end
[~,p]=min(div1);
Maio de 2015
ALGORITMO SIMPLEX
Mestrado em Engenharia Eltrica
for i=1:r
if i==p;
for j=1:t
canonic1(p,j)=canonic(p,j)/canonic(p,q);
end
end
if i~=p;
for j=1:t
canonic1(i,j)=canonic(i,j)(canonic(p,j)*canonic(i,q)/canonic(p,q));
end
end
end
Clculo dos
novos termos Yij
para a nova
matriz cannica
de dimenses
(r,t).
canonic=canonic1;
vectorz=canonic(r,:);
[columna,q]=min(vectorz);
end
for j=1:t-1
for i=1:r
X(j)=X(j)+abs(canonic(i,j));
end
if X(j)==1
vectorj=canonic(:,j);
[~,s]=max(vectorj);
Z(j)=canonic(s,t);
end
end
end
ZT=-canonic(r,t);
end
Seleo dos
dados para
presentao
das matrizes de
sada
canonic, Z
e ZT .
Maio de 2015
ALGORITMO SIMPLEX
Mestrado em Engenharia Eltrica
Bibliografia
CHAPMAN, S. J. (2011). programaao em MATLAB para engenheiros.SAO
PAULO: CENAGE LEARNING.
Jaln, J. G. (2009). Aprenda Matlab 7.0. MADRID: Universidad
Politcnica de Madrid.
Referncias Bibliogrficas:
CHAPMAN, S. J. Programao em MATLAB para engenheiros.
So Paulo: Cenage Learning, 2011.
JALN, J.g. Aprenda Matlab 7.0. Madrid: Universidad
Politcnica de Madrid, 2009.
Maio de 2015