Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ricardo Arantes

Método simplex em java

Recommended Posts

Pessoal, beleza, estou precisando uma força com um programinha simplex en java, alguém pode ajudar

Bom, desde que você poste o programa, ou o que você quer sobre tal programa, fica melhor!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Brother descolei um em C, acho que pode te ajudar fiz um teste e parece que ta funcionando.... mas nao vale estar tive isso na facu ... Metodos Numerico ...

 

//--------------------Metodo SIMPLEX

 

#define H0 3

#define V0 2

#define VMAX 24

#define HMAX 78

#define H1 50

#define V 4

#define H 6

#include<stdio.h>

 

int MALHA2(int I,int J){

clrscr();

//------------------INICIO MALHAS----------------------

//---------Linhas Basicas

for(I=H0;I<HMAX;I++){

gotoxy(I,V0);printf("\xc4");

gotoxy(I,VMAX);printf("\xc4");

}

for(I=V0+1;I<VMAX;I++){

gotoxy(H0,I);printf("\xb3");

gotoxy(HMAX,I);printf("\xb3");

}

gotoxy(H0,V0);printf("\xc9");

gotoxy(H0,VMAX);printf("\xc8");

gotoxy(HMAX,V0);printf("\xbb");

gotoxy(HMAX,VMAX);printf("\xbc");

//-------Fim

 

for(I=H0+1;I<H1;I++){

gotoxy(I,11);printf("\xdc");

}

for(I=V0+1;I<12;I++){

gotoxy(50,I);printf("\xb3");

}

for(I=4;I<78;I++){

gotoxy(I,13);printf("\xc4");

gotoxy(I,15);printf("\xc4");

gotoxy(I,17);printf("\xc4");

gotoxy(I,19);printf("\xc4");

gotoxy(I,21);printf("\xc4");

}

for(I=14;I<24;I++){

gotoxy(18,I);printf("\xb3");

gotoxy(27,I);printf("\xb3");

gotoxy(37,I);printf("\xb3");

gotoxy(57,I);printf("\xb3");

gotoxy(67,I);printf("\xb3");

gotoxy(47,I);printf("\xb3");

}

 

gotoxy(2,25);printf("Curso: Matematica Computacional 2002 -> Programador : RJMF | rjmf@rjmf.net");

 

 

 

gotoxy(55,3);printf("METODO SIMPLEX");

//------------------------------------------------FIM MALHA--------

}

 

 

int MALHA1(int I,int J){

clrscr();

//------------------INICIO MALHAS----------------------

//---------Linhas Basicas

for(I=H0;I<HMAX;I++){

gotoxy(I,V0);printf("\xc4");

gotoxy(I,VMAX);printf("\xc4");

}

for(I=V0+1;I<VMAX;I++){

gotoxy(H0,I);printf("\xb3");

gotoxy(HMAX,I);printf("\xb3");

}

gotoxy(H0,V0);printf("\xc9");

gotoxy(H0,VMAX);printf("\xc8");

gotoxy(HMAX,V0);printf("\xbb");

gotoxy(HMAX,VMAX);printf("\xbc");

 

for(I=4;I<78;I++){

gotoxy(I,5);printf("\xc4");

gotoxy(I,7);printf("\xc4");

gotoxy(I,9);printf("\xc4");

gotoxy(I,11);printf("\xc4");

gotoxy(I,13);printf("\xc4");

gotoxy(I,15);printf("\xc4");

gotoxy(I,17);printf("\xc4");

gotoxy(I,19);printf("\xc4");

gotoxy(I,21);printf("\xc4");

}

for(I=6;I<24;I++){

gotoxy(18,I);printf("\xb3");

gotoxy(27,I);printf("\xb3");

gotoxy(37,I);printf("\xb3");

gotoxy(57,I);printf("\xb3");

gotoxy(67,I);printf("\xb3");

gotoxy(47,I);printf("\xb3");

}

 

//-------Fim

gotoxy(60,3);printf("METODO SIMPLEX");

//------------------------------------------------FIM MALHA--------

}

 

int MALHAF(int I,int J){

clrscr();

//------------------INICIO MALHAS----------------------

//---------Linhas Basicas

for(I=H0;I<HMAX;I++){

gotoxy(I,V0);printf("\xc4");

gotoxy(I,VMAX);printf("\xc4");

}

for(I=V0+1;I<VMAX;I++){

gotoxy(H0,I);printf("\xb3");

gotoxy(HMAX,I);printf("\xb3");

}

gotoxy(H0,V0);printf("\xc9");

gotoxy(H0,VMAX);printf("\xc8");

gotoxy(HMAX,V0);printf("\xbb");

gotoxy(HMAX,VMAX);printf("\xbc");

}

 

void main(void){

// float M[V][H]={-3,-5,0,0,0,0,1,0,1,0,0,4,0,2,0,1,0,12,3,2,0,0,1,18};

float M[V][H];

float CPIVO[V],LPIVO[H],LINHAZERO[H],M2[V][H];

float NOVALINHA2[H],NOVALINHA3[H];

float AUX,MAIOR=0,NPIVO=9999999,NUM,N,N1=999999;

int X1,X2,I=0,J,L=2,COLUNA,LINHA,VEZES=0,TESTE=0;

int MAXITERADA;

char t;

clrscr();

//----------------Leitura da forma Tabular

MALHA1(I,J);

gotoxy(20,3);printf("Leitura do Quadro Simplex");

for(I=0;I<H-1;I++){

gotoxy(10*I+10,6);printf(" X%d",I+1);

}

 

for(I=0;I<V;I++){

for(J=0;J<H;J++){

gotoxy(10*J+10,2*I+8);scanf("%f",&M[J]);

}

}

gotoxy(20,25);printf("Digite o n\xa7 Maximo de Iteradas :");scanf("%d",&MAXITERADA);

//------------------FIM

//----------------------COMECO DAS ITERADAS

while(VEZES<MAXITERADA){

gotoxy(60,22);printf("Iterada = %d",VEZES+1);

//--------------Mostra a Tabela Simplex

MALHA1(I,J);

gotoxy(6,3);printf("Iterada n\xa7: %d",VEZES+1);

gotoxy(30,3);printf("Quadro Simplex");

for(I=0;I<H-1;I++){

gotoxy(10*I+10,6);printf(" X%d",I+1);

}

for(I=0;I<V;I++){

for(J=0;J<H;J++){

gotoxy(10*J+10,2*I+8);printf(" %3.3f",M[J]);

}

}

t=getch();

//--------------------FIM

 

//---------Determina o coeficiente de maior valor da equacao(0)

for(I=0;I<H;I++){

if(M[0]<0){

AUX=-M[0];

if(AUX>MAIOR){

MAIOR=AUX;

COLUNA=I;

}

}

}

clrscr();

MALHA2(I,J);

MAIOR=-MAIOR;

 

//-----------------fim

 

//------Determina a Coluna Pivo

gotoxy(53,5);printf("-> Coluna Pivo:");

for(I=0;I<V;I++){

CPIVO=M[COLUNA];

gotoxy(60,7+I);printf("%3.3f",CPIVO);

}

 

//------------FIM

 

//-------Determina o Numero Pivo

for(I=0;I<V;I++){

if(CPIVO!=0 && CPIVO!=MAIOR){

N=M[V+1];

NUM=N/CPIVO;

if(NUM<N1){

N1=NUM;

NPIVO=CPIVO;

LINHA=I;

}

}

}

 

//----FIM

gotoxy(5,3);printf("-> Outros Resultados :");

gotoxy(5,5);printf("Maior Coeficiente = %3.3f",MAIOR);

gotoxy(5,6);printf("Numero Pivo = %3.3f",NPIVO);

gotoxy(5,7);printf("Indice da coluna Pivo = %d",COLUNA);

gotoxy(5,8);printf("Indice da linha Pivo = %d",LINHA);

gotoxy(64,12);printf("Iterada n\xa7: %d",VEZES+1);

//---------Determina LINHA PIVO

for(I=0;I<H;I++){

LPIVO=M[LINHA];

}

//--------Determina Nova Linha Pivo

for(I=0;I<H;I++){

LPIVO=LPIVO/NPIVO;

}

//-------FIM

 

//---------Determina NOVAS LINHA

gotoxy(5,12);printf("-> Resultados dos Calculos das Novas Linhas:");

gotoxy(6,14);printf("Linha Zero");

gotoxy(6,16);printf("Linha Pivo");

gotoxy(6,18);printf("Linha I");

gotoxy(6,20);printf("Linha II");

 

///***************Testa quais Linhas estao Livres************

//Para este Caso: 2 linhas Livres -> Tirando L0 E LPIVO

for(J=0;J<V;J++){

if(LINHA!=J && J!=0){

X1=J;

break;

}

}

for(J=0;J<V;J++){

if(LINHA!=J && J!=0 && J!=X1){

X2=J;

break;

}

}

//******************Fim do Teste*****************

 

//-------Calculo das Linhas---------

for(I=0;I<H;I++){

//-------Linha ZERO Fixa

LINHAZERO=M[0]-CPIVO[0]*LPIVO;

gotoxy(10*I+20,14);printf("%3.3f",LINHAZERO);

//------Mostra nova lINHA PIVO

gotoxy(10*I+20,16);printf("%3.3f",LPIVO);

 

//------linha I - VARIAVEL

NOVALINHA2=M[X1]-CPIVO[X1]*LPIVO;

gotoxy(10*I+20,18);printf("%3.3f",NOVALINHA2);

//------linha II - VARIAVEL

NOVALINHA3=M[X2]-CPIVO[X2]*LPIVO;

gotoxy(10*I+20,20);printf("%3.3f",NOVALINHA3);

}

//---------------------------------------------------------------

 

t=getch();

clrscr();

//----------MATRIZ 2

//---------Zera a Matriz M2

for(I=0;I<V;I++){

for(J=0;J<H;J++){

M2[J]=NULL;

}

}

//------------------

//-------Atribui a M2 os Dados obtidos

for(I=0;I<V;I++){

for(J=0;J<H;J++){

M2[0][J]=LINHAZERO[J];

M2[1][J]=LPIVO[J];

M2[2][J]=NOVALINHA2[J];

M2[3][J]=NOVALINHA3[J];

}

}

//-------------------------

MALHA1(I,J);

gotoxy(4,4);printf("Fim da Iterada n\xa7: %d",VEZES+1);

//------MOSTRA A NOVA TABELA DE VARIAVEIS

gotoxy(25,3);printf("Novo Quadro Simplex");

for(I=0;I<H-1;I++){

gotoxy(10*I+10,6);printf(" X%d",I+1);

}

for(I=0;I<V;I++){

for(J=0;J<H;J++){

//---------Atribui Matriz 2 a Matriz Original

M[J]=M2[J];

gotoxy(10*J+10,2*I+8);printf(" %3.3f",M2[J]);

}

}

//----------------TESTA REGRA DE PARADA

t=getch();

clrscr();

 

for(I=0;I<H;I++){

if(M[0]>=0){

TESTE++;

}

}

if(TESTE==H){

break;

}

//---------FIM DO TESTE

//---------FIM

VEZES++;

TESTE=0;

MAIOR=0;

NPIVO=9999999;

 

}//------Fim do While

 

//***********Mostra Solucao Otima ( FINAL )*****************

MALHAF(I,J);

gotoxy(5,3);printf("=> SOLUCAO FINAL");

gotoxy(14,6);printf("-> Solucao Otima:");

for(I=0;I<V;I++){

gotoxy(16,8+I);printf("[ %3.3f ]",M[H-1]);

}

gotoxy(20,15);printf("Solucao Otima, conseguida na Iterada n\xa7: %d",VEZES+1);

t=getch();

}//------FIM DO PROGRAMA

foi retirado do site : http://www.forumweb.com.br/foruns/index.php?showtopic=21589

 

At+ http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.