Sei sulla pagina 1di 21

Simplex Solver - Release 2015

Sinvaldo R. Moreno, MSc. Eng.


sinvaldo.moreno@ufpr.br

24 de novembro de 2015

S.R.Moreno

Sumrio
1 Disclaimer

2 Aviso Legal

3 O que h de novo na Verso 1.1.1.6 ?

4 Instalao

5 Interface Grfica
5.1 Check Box - Opes de
5.2 Boto LER DADOS .
5.3 Boto Solve Simplex .
5.4 Boto Clear . . . . . .
5.5 Boto Ver Resultados .

.
.
.
.
.

5
6
7
8
8
9

.
.
.
.
.
.
.

9
9
10
11
13
14
16
17

Sada dos Resultados


. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

6 Resolvendo um Problema de Programao Linear


6.1 Formato do Problema . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Formato do Arquivo de Entrada do Problema 1 . . . . . . . . . .
6.3 Variveis Livres . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4 Formato do Arquivo de Entrada do Problema com Variveis Livre
6.5 Iteraes Modo Tutorial . . . . . . . . . . . . . . . . . . . . . . .
6.6 Modo Gerar Arquivo de Resultados . . . . . . . . . . . . . . . . .
6.7 Formato do Arquivo de Sada do Problema . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

7 Problemas Ilimitado ou Sem Soluo, Mltiplas Solues, Degenerado 19


8 Uso Acadmico

21

Simplex Solver

S.R.Moreno

Disclaimer

Simplex Solver - Linear Programming Application Copyright (C) 2015 S.R. Moreno
This program is free software: you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software Foundation,
either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.
You should have received a copy of the GNU General Public License along with this
program. If not, see http://www.gnu.org/licenses/.

Aviso Legal

Simplex Solver - Aplicao para Soluo de Problemas de Programao Linear Copyright (C) 2015 S.R. Moreno
Este programa software livre: voc pode redistribu-lo e / ou modificlo sob os
termos da GNU General Public License como publicado pela a Free Software Foundation, tanto a verso 3 da licena, ou (a seu critrio) qualquer verso posterior.
Este programa distribudo na esperana que possa ser til, mas SEM QUALQUER GARANTIA; mesmo sem a garantia implcita de COMERCIALIZAO ou
ADEQUAO A UM DETERMINADO FIM. veja a Licena Pblica Geral GNU para
obter mais detalhes.
Voc deve ter recebido uma cpia da Licena Pblica Geral GNU junto com este
programa. Se no, veja http://www.gnu.org/licenses/.

O que h de novo na Verso 1.1.1.6 ?

Esta verso recebeu atualizao principalmente na interface que inclui a funcionalidade do usurio resolver um problema de Programao Linear atravs do Modo
Tutorial, alm de incluir a opo de abrir o arquivo de resultados na forma de Tableau
na interface do programa.
O Modo Tutorial possibilita o perfeito entendimento dos passos que o mtodo Simplex est seguindo para resolver o problema, seja atravs do Simplex Primal ou do Dual
Simplex Solver

S.R.Moreno
Simplex, onde a cada iterao, mostrado ao usurio quem entrar na base e qual
elemento o piv, onde sero realizadas as operaes para obter a base atualizada.
A maneira de realizar o input do problema continua inalterada, bem como as funcionalidades de salvar as solues de cada iterao em um arquivo. A incluso de um
boto com a opo de Ver Resultados, possibilita ao final das iteraes ver o Tableau
de cada iterao, facilitando a anlise de resultado de cada iterao.

Instalao

R disponibilizado para instalao atravs do link de


O aplicativo Simplex Solver
instalao: https://drive.google.com/file/d/0B3dw398mYs0DQm92RFctWHZwRHM/view?
usp=sharing , de CD/DVD ou flash-drive. A instalao simples e haver incluso
R para que o mesmo
de informaes e permisses no Registro do Microsoft Windows
possa ser instalado. Dessa forma se faz necessrio ter privilgios de Administrador
da mquina, para que se possa lograr exito na instalao.
Para iniciar a instalao basta clicar no cone Setup conforme Figura 1. :

Figura 1: Acessando o arquivo de Instalao

Ao clicar no arquivo Setup iniciar o processo de instalao da aplicao, que


solicitar a confirmao se a fonte que disponibilizou o arquivo confivel (Publisher),
Simplex Solver

S.R.Moreno
conforme Figura 2, confirme a instalao, clicando em Install.

Figura 2: Confirmao de Instalao

Aps a concluso da instalao, ser criado um atalho na rea de trabalho, bem


R
como uma pasta no menu iniciar do Microsoft Windows .

Interface Grfica

Para iniciar a aplicao basta um clique sobre o atalho, uma tela inicial de carregamento da aplicao surgir, conforme Figura 3:

R
Figura 3: Tela Inicializao Simplex Solver .

Aps alguns segundos, a Tela da Aplicao surgir, conforme Figura 4:


Simplex Solver

S.R.Moreno

R
Figura 4: Tela Inicial Simplex Solver .

Observe que a interface bem simples, h um check box com as opes Ver Resultados na Tela, Gerar Arquivo de Resultados e Modo Tutorial, alm dos botes
Ler Dados, Ver Resultados, Solve Simplex e Clear. A funo de cada item
detalhada a seguir.

5.1

Check Box - Opes de Sada dos Resultados

facultado ao usrio a escolha de ter os resultados mostrados em tempo de execuo,


a cada iterao, na tela do computador, ou ainda salv-los em um arquivo de texto
(.txt), isso feito atravs da seleo no check box, conforme Figura 4.
1. Ver Resultados na Tela: Ao selecionar esta opo , a cada iterao, a aplicao
mostrar o resultado na tela do Tableau atualizado;
2. Gerar Arquivo de Resultados: Nesta opo os resultados sero salvos em
arquivo .txt;
3. Modo Tutorial: Nesta opo a cada iterao destacado na cor dourada, a
linha e coluna do elementos que entraro e sairo da base;
4. Ver Resultados na Tela E Gerar Arquivo de Resultados: A combinao
de ambas opes, proporciona ver os resultados a cada iterao, alm de salvar
em um arquivo de texto;
Simplex Solver

S.R.Moreno
5. Ver Resultados na Tela E Modo Tutorial: A combinao de ambas opes,
proporciona ver os resultados a cada iterao, alm de ter o detalhamento dos
passos do Simplex;
6. Modo Tutorial E Gerar Arquivo de Resultados: A combinao de ambas
opes, proporciona ver os resultados a cada iterao com o detalhamento dos
passos do Simplex, alm de salvar em um arquivo de texto;
7. Ver Resultados na Tela E Modo Tutorial E Gerar Arquivo de Resultados: A combinao das trs opes possibilita ao usurio a mxima funcionalidade.
Caso no seja escolhido nenhuma opo de sada (nenhum item selecionado), por
default a aplicao mostrar os resultados na tela;

5.2

Boto LER DADOS

A entrada dos dados do problema feita atravs de um arquivo de texto (.txt).


Para selecionar o arquivo basta clicar no boto Ler Dados. Uma caixa de seleo
de arquivos se abrir para o usurio indicar o caminho do arquivo com o problema a
ser resolvido. Ao selecionar um arquivo com o problema a ser resolvido, habilitado
na interface o boto Clear e o boto Solve Simplex. Caso nenhum arquivo seja
escolhido, o usurio poder Cancelar ou Refazer a escolha do arquivo. Ao pressionar
Cancelar, a aplicao ser encerrada;

Figura 5: Ao selecionar o arquivo de entrada, o boto Clear e Solve Simplex habilitado.

Simplex Solver

S.R.Moreno

Figura 6: Opes de Cancelar ou Refazer a Escolha do Arquivo.

Figura 7: Opo de Cancelar - Encerra a aplicao.

5.3

Boto Solve Simplex

Aps a entrada dos dados do problema, via arquivo .txt, para iniciar a soluo de
um problema, basta clicar no boto Solve Simplex, que habilitado somente aps o
carregamento dos dados na interface grfica.

5.4

Boto Clear

Aps a soluo de um problema, caso o usurio deseje realizar a soluo de outros


problemas, sem a necessidade de fechar a aplicao e inicializar novamente, basta clicar
no boto Clear que a aplicao estar disponvel para uso; Este boto s habilitado
aps o carregamento dos dados na interface grfica.
Simplex Solver

S.R.Moreno

5.5

Boto Ver Resultados

Aps a soluo do problema, tendo inicialmente escolhido a opo de Gerar Arquivos de Resultados, o boto Ver Resultados possibilita abrir o arquivo de resultados
utilizando a interface grfica do solver, facilitando desta forma a leitura dos resultados
de cada iterao. Este boto s habilitado ao final da soluo do problema, com a
opo de Gerar Arquivos de Resultados previamente selecionada.

Resolvendo um Problema de Programao Linear

6.1

Formato do Problema

R para a funo objetivo de Minimizao,


O padro utilizado no Simplex Solver
ou seja, caso o problema a ser resolvido esteja no padro de Maximizao, o mesmo
deve ser transformado para Minimizao, bastando para isso multiplicar a funo
objetivo por (-1).
Ainda seguindo o padro de Minimizao, as restries do problema devem estar na
forma de igualdade, ou seja, o problema j deve estar transformado na forma de Tableau,
tambm referido como Forma Preparada, ou Formato Padro. Para maiores detalhes
sobre mudanas e transformaes de desigualdade, consulte bibliografia especializada [1,
2].
Exemplo de transformao de um problema para o formato de entrada do Simplex
R
Solver .

M ax Z = 3x1 + 5x2

(1)

Sujeito a:
x1 4

(2)

2x2 12
3x1 + 2x2 18
x1 and x2 0;
Colocando na forma padro: Problema de Minimizao e restries transformadas em =.

Simplex Solver

S.R.Moreno
M in Z = 3x1 + 5x2

(3)

Sujeito a:
x1 + s 1 = 4

(4)

2x2 + s2 = 12
3x1 + 2x2 + s3 = 18
x1 and x2 0;
Tableau do Simplex: Sendo este o formato preparado;
x1
Base -3
s1
1
s2
0
s3
3

x2
-5
0
2
2

s1
0
1
0
0

s2
0
0
1
0

s3
0
0
0
1

RHS
Z
4
12
18

Tabela 1: Tableau j na forma preparada do problema exemplo 1

O problema na forma de Tableau o formato adotado para o arquivo de entrada de


R
dados no Simplex Solver .

6.2

Formato do Arquivo de Entrada do Problema 1

R um arquivo de texto, sendo o Tableau 1


O arquivo a ser lido pelo Simplex Solver
o formato a ser transferido para o arquivo txt, apenas com uma mudana na coluna
onde aparece Z, que deve ser substitudo por 0, alm das variveis de folga s1 , s2 e s3
serem renomeadas para xi onde o indice i a continuao do ndice das variveis do
problema. Para clarificar o padro, um exemplo apresentado na Figura 8, onde as
variveis s1 deve ser renomeada para x3 , s2 para x4 e assim por diante:

Simplex Solver

S.R.Moreno

Figura 8: Modelo de Arquivo de Entrada

R o problema apresentado conforme


Aps carregar o arquivo no Simplex Solver ,
Figura 9. Observe que aps carregar o arquivo, o boto Solve Simplex mostrado do
lado direito do check box na aplicao:

Figura 9: Problema Exemplo

6.3

Variveis Livres

Quando existe variveis livres, ou transformaes de problemas linear por partes,


as variveis que correlacionam o intervalo onde existe a linearidade por partes, ou as
variveis de transformao da varivel livre (ex. x1 livre equivalente a x1 = x01 x001 ,
sendo x01 0 and x001 0). Um exemplo de transformao de um problema que contm
R mostrada a seguir. Seja
varivel livre para o formato utilizado pelo Simplex Solver
o problema de maximizao dado abaixo, com x1 sendo livre:
Simplex Solver

S.R.Moreno
M ax Z = x1 + 4x2

(5)

3x1 + x2 6

(6)

Sujeito a:

x1 + 2x2 4
x2 3
x1 Livre ; x2 0;
Colocando na forma padro: Problema de Minimizao e variveis xi 0.
M in Z = x01 + x001 4x2

(7)

Sujeito a:
3x01 + 3x001 + x2 6

(8)

x01 x001 + 2x2 4


x2 3
x01 ; x001 ; x2 0;
Colocando as restries na forma preparada: Ou seja, transformar as restries
em igualdade atravs de variveis de folga ou excesso:
M in Z = x01 + x001 4x2

(9)

Sujeito a:

3x01 + 3x001 + x2 + s1 = 6
x01 x001 + 2x2 + s2 = 4
x2 + s3 = 3
x01 ; x001 ; x2 ; s1 ; s2 ; s3 0;
Tableau do Simplex: Sendo este o formato preparado;

Simplex Solver

(10)

S.R.Moreno
x01
Base 1
s1
-3
s2
1
s3
0

x001
-1
3
-1
0

x2
-4
1
2
-1

s1
0
1
0
0

s2
0
0
1
0

s3
0
0
0
1

RHS
Z
6
4
3

Apenas para no causar erro de interpretao ao ler soluo mostrada da aplicao,


devido ao padro de entrada ser a continuao do ndice do numero de variveis do
problema, para as variveis x0i , quando estas estiverem no problema transformado,
recomenda-se ao usurio que renomeie-as para xi , alm de o faz-lo tambm para as
variveis de folga, ou seja, si para xi ; Desta forma o problema ser inserido na aplicao,
da seguinte forma:

Base
x4
x5
x6

x1
1
-3
1
0

x2
-1
3
-1
0

x3
-4
1
2
-1

x4
0
1
0
0

x5
0
0
1
0

x6
0
0
0
1

RHS
Z
6
4
3

Tabela 2: Tableau a ser utilizado

Lembrando que esse um caso particular, ou seja, quando existem variveis livres,
tais como x1 neste exemplo, que ao serem transformadas atravs da igualdade x1 =
x01 x1 , onde x01 0 e x001 0, a mesma deve ser renomeada aps a transformao para
variveis que no possuem o x0i . E para manter coerncia com o resultado apresentado,
as variveis de folga (slacks si ) so renomeadas para xi , seguindo a ordem de evoluo
dos ndices das variveis;

6.4

Formato do Arquivo de Entrada do Problema com Variveis Livre

R um arquivo de texto, sendo o Tableau 2


O arquivo a ser lido pelo Simplex Solver
o formato a ser transferido para o arquivo txt, apenas com uma mudana na coluna
onde aparece Z, que deve ser substitudo por 0, conforme figura abaixo:

Simplex Solver

S.R.Moreno

Figura 10: Modelo de Arquivo de Entrada

R o problema apresentado conforme


Aps carregar o arquivo no Simplex Solver ,
figura abaixo. Observe que aps carregar o arquivo, o boto Solve Simplex mostrado
do lado direito do check box na aplicao:

Figura 11: Problema Exemplo

6.5

Iteraes Modo Tutorial

Aps carregar o arquivo, para realizar as iteraes, basta clicar no boto Solve
Simplex. Lembrando que a sada deve estar selecionada, caso a mesma no esteja, a
sada padro ser a tela do computador.
Para o exemplo 1 em questo, ao clicar no boto Solve Simplex, a aplicao far
uma anlise do problema para verificar se o mesmo esta no formato padro, alm de
indicar por qual mtodo se dar a soluo, se pelo Simplex ou pelo Dual Simplex:
Simplex Solver

S.R.Moreno

Figura 12: Mtodo de Soluo do Problema Exemplo 1 atravs do Simplex

Figura 13: Mtodo de Soluo atravs do Dual Simplex

Ao clicar no boto Solve Simplex no Modo Tutorial, a cada iterao mostrado


em um Message Box qual varivel entrar na base e qual varivel ser o piv, alm
de ser destacada na cor dourada a linha e coluna relativa a tais variveis, conforme a
Figura 14.

Simplex Solver

S.R.Moreno

Figura 14: Informao de alterao da base e elemento piv na Iterao 1.

A soluo final apresentada na tela, sem arredondamento ou truncamento, alm


de informar se o timo foi encontrado ou no.

Figura 15: Soluo tima Encontrada

6.6

Modo Gerar Arquivo de Resultados

Aps carregar o arquivo, com a opo Gerar Arquivo de Resultados selecionada,


para realizar as iteraes basta clicar no boto Solve Simplex. Para o exemplo 1 em
questo, ao clicar no boto Solve Simplex, a aplicao far uma anlise do problema
para verificar se o mesmo esta no formato padro, alm de indicar por qual mtodo
se dar a soluo, se pelo Simplex ou pelo Dual Simplex, conforme j exemplificado.
Simplex Solver

S.R.Moreno
R solicitar um caminho e nome do
Ao realizar a primeira iterao o Simplex Solver
arquivo onde sero gravadas as iteraes.

Figura 16: Solicitao de path para a gerao do arquivo com as respostas

Ao finalizar a gravao, um Message Box informar que o arquivo com as solues


foi gerado, alm de habilitar o boto Ver Resultados.

Figura 17: Gerao do arquivo com as respostas concluda

6.7

Formato do Arquivo de Sada do Problema

Ao selecionar a sada para ser gravada em um arquivo .txt, todas as iteraes sero
salvas e identificadas, conforme exemplo abaixo:

Simplex Solver

S.R.Moreno

Figura 18: Formato do Arquivo de Sada para o Problema Exemplo 1

O arquivo salvo em local informado pelo usurio. Caso o usurio deseje utilizar o
mesmo arquivo para salvar todas as solues de vrios problemas, o arquivo atual no
sobre-escrito, ou seja, ele continuado, podendo ser utilizado como um log de solues
de todos os problemas. A identificao se d pelo numero de iteraes. Exemplo de
solues de dois problemas distintos salvos no mesmo arquivo de sada:

Figura 19: Formato do Arquivo de Sada para dois Problemas Distintos

Simplex Solver

S.R.Moreno

Problemas Ilimitado ou Sem Soluo, Mltiplas


Solues, Degenerado

R informa apenas algumas possveis situaes que podem ocorrer


O Simplex Solver
ao tentar solucionar um problema de Programao Linear. Exemplos so mostrados a
seguir:
Soluo Ilimitada ou Sem Soluo: O solver Identifica.

Figura 20: Problema Ilimitado ou sem Soluo tima

Solues Mltiplas: O solver NO Identifica. Neste exemplo x4 VNB e possui


custo nulo, podendo entrar na Base, ou seja, pode-se tornar VB sem alterar a soluo.

Simplex Solver

S.R.Moreno

Figura 21: Problema com Mltiplas Solues No Identificado pelo Solver

Solues Degenerada: O solver NO Identifica. Neste exemplo x1 assumiu valor


nulo (RHS), sendo portanto, uma soluo degenerada.

Figura 22: Problema com Soluo Degenerada No Identificado pelo Solver

Simplex Solver

S.R.Moreno

Uso Acadmico

R para fins acadmicos pode facilitar a explanao


A utilizao do Simplex Solver
e entendimento dos conceitos envolvidos no uso do Mtodo Simplex. Porm devido
a certos tipos de respostas e comportamentos do problema no serem identificados
R uma anlise atenda dos resultados deve ser precedida para um
pelo Simplex Solver ,
entendimento completo das solues apresentadas.

Sobre o Autor
Sinvaldo R. Moreno graduado em Engenharia Eltrica pela UFPR. Possui Mestrado em Engenharia de Recursos Hdricos e Ambiental pela UFPR. Atualmente aluno
de Doutorado no Programa de Ps Graduao em Engenharia Eltrica da UFPR. O
mesmo atua no Setor Eltrico desde 2006, com trabalhos voltado para rea de Operao
de Usinas Hidreltricas, Otimizao da Operao de Reservatrios, Estudos Impactos
de Cheias, Anlise de Projetos Hidroenergticos, entre outras.
Tem interesse em Inteligncia Computacional, Inteligncia de Enxames, Otimizao,
Mtodos de Simulao. Contatos: email sinvaldo.moreno@ufpr.br.

Referncias
[1]

Katta G. Murty - Linear Porgramming John Willey and Sons - United States
of America - 1983.

[2]

Frederick Hillier and Gerald Lieberman - Introduction to Operations Research


McGraw-Hill Science Engineering Math; 9 edition (February 9, 2009)

Simplex Solver

Potrebbero piacerti anche