Algoritmo simplex em c

Disponível somente no TrabalhosFeitos
  • Páginas : 2 (346 palavras )
  • Download(s) : 0
  • Publicado : 2 de dezembro de 2012
Ler documento completo
Amostra do texto
Campus Sur
Ingeniería en Sistemas Computacionales.
Temas Selectos de Ingeniería en Sistemas Computacionales I.
08/Agosto/2001.
Introducción.
Los programas matemáticos implican a un conjunto devariables relacionadas por un conjunto de
ecuaciones matemáticas (restricciones) y una función objetivo que contiene a las variables y que debe
maximizarse respetando las restricciones dadas, de aquíque si todas las ecuaciones en juego son
simples combinaciones lineales de las variables, se tenga un programa lineal.
Para resolver este tipo de ecuaciones, o programas lineales se emplea elmétodo simplex el cual consiste en
una región convexa definida por intersecciones de semiplanos, este método consiste en agregar variables de
holgura a cada un de las ecuaciones lineales con la finalidadde convertirlas en igualdades, luego se hace una
tabla con los coeficientes de estas igualdades incluyendo a la función objetivo a la cual se le cambia el signo,
formando así un matriz decoeficientes.
De esta matriz se selecciona un elemento [p][q], después se multiplica la p−ésima fila por un escalar
apropiado y se suma a todas las filas restantes para llenar la q−esima columna de cerosexcepto el elemento de
la fila q que se pone a 1y así sucesivamente hasta que se llega a una matriz que tiene en su diagonal principal
solamente 1 maximizando así la función objetivo.
Lo siguiente esun algoritmo que nos permite implementar el método simplex en donde primero se
toman los valores de los coeficientes, se crea la matriz se obtienen la columna del pivote y
posteriormente la fila, seguardan los elementos se transforman y se imprimen para finalizar liberando
el espacio de las variables.
Algoritmo en C del Método Simplex.
int main ( ) { unsigned n,e,*x; float *c,**a,*h,*v;unsigned i,j,bi,bj;
1

Toma de datos.
printf ("Num. var.: "); scanf ("%u",&n); printf ("Num. inec.: "); scanf ("%u",&e); c = calloc ( n+1, sizeof(
float)); a = calloc ( e+1, sizeof( float*)); x =...
tracking img