You are on page 1of 8

MAESTRÍA EN AUTOMATIZACIÓN Y CONTROL INDUSTRIAL

INTELIGENCIA ARTIFICIAL
METODO SIMPLEX

Roberto Carlos Guevara Calume

Medellin

2009
Roberto Carlos Guevara Calume

Trabajo I -- Inteligencia Artificial. --

1. El problema de la dieta:
Se tiene dos tipos de granos (Tipo 1, Tipo 2) y se desea obtener una dieta adecuada a un costo
mínimo.

La dieta entrega la cantidad que debe ser consumido diariamente cada nutriente y debe ser mayor
o igual al requerimiento mínimo diario (RMD):

Tipo 1 Tipo 2 RMD


Almidón 5 7 8
Proteína 4 2 15
Vitamina 2 1 3
Costo $600 $350

Como debe prepararse la dieta tal que el costo sea mínimo?.

Plantear el problema y dibujar la región factible.

función objetivo 600 x 1+350 x 2


Restricciones
5 x 1+7 x 2 ≥ 8
4 x 1+2 x 2 ≥15
2 x 1+ x 2 ≥ 3

Dibujamos la región factible


Roberto Carlos Guevara Calume

2. Suponga que una persona acaba de heredar $6.000 y desea invertirlos. Al oír ésta noticia, dos
amigos distintos le ofrecen la oportunidad de participar como socio en dos negocios, cada negocio
planteado por cada amigo. En ambos casos, la inversión significa dedicar un poco de tiempo el
siguiente verano, al igual que invertir efectivo. Con el primer amigo, al convertirse en socio
completo, tendría que invertir $5.000 y 400 horas, y la ganancia estimada (ignorando el valor del
tiempo) sería de $4.500. Las cifras correspondientes a la proposición del segundo amigo son
$4.000 y 500 horas, con una ganancia estimada de $4.500. Sin embargo, ambos amigos son
flexibles y le permitirían entrar en el negocio con cualquier fracción de la sociedad; la participación
en las utilidades sería proporcional a esa fracción. Como de todas maneras, ésta persona está
buscando un trabajo interesante para el verano (600 horas a lo sumo), ha decidido participar en
una ó ambas propuestas, con la combinación que maximice la ganancia total estimada. Formule y
resuelva el problema empleando MATLAB.

Solución:

X1 : inversión (1) ; X2 : inversión (2)

Planteamiento:

4500 400
( P ) Max z= x 1+ x2
5000 5000

9 9
( P ) Max z= x 1+ x 2
10 8

x 1+ x 2≤ 6000
2 1
x 1+ x 2≤ 600
25 8
x 1 ≤ 5000
x 2 ≤ 400
x1, x2≥0
Roberto Carlos Guevara Calume

Usando matlab se encontró el siguiente programa general que usa dos funciones Objfun y Confun,
el código y los resultados de salida son :

Programa principal Funcion Objfun Funcion Confun


%Realizado por:- Marchena Williams %Se define la function [c, ceq] =
% - Ornelas Carlos función objetivo confun(x)
%Supervizado por: Gonzalez- con signo % restricciones de
Longatt, F. contrario desigualdades
%Fecha: 12-02-2006 lineales o no
%UNEFA - Núcleo Maracay function f = lineales
%--------------------------------- objfun(x)
clc % Borra la pantalla f=-(9/10)*x(1)- c=[-x(1); -x(2);x(1)-
clear % Borra todas las variables (9/8)*x(2) 5000;x(2)-4000;
disp(' ') % DISP: muestra una (2/25)*x(1)+(1/8)*x(2
cadena de caracteres )-600;x(1)+x(2)-
disp(' Ejemplo 1') 6000];
disp('--------------------------') % restricciones de
disp(' Condiciones Iniciales del igualdades lineales o
programa') no lineales
x0=[0,0] ceq = [];
options=optimset('LargeScale','off
');
[x,fval]=fmincon(@objfun,x0,[],[],
[],[],[],[],@confun,options)
%---------------------------------

SALIDA

Ejemplo 1
------------------------------------------------------------
Condiciones Iniciales del programa

x0 = 0 0

Warning: Options LargeScale = 'off' and Algorithm = 'trust-region-reflective' conflict.


Ignoring Algorithm and running active-set method. To run trust-region-reflective, set
LargeScale = 'on'. To run active-set without this warning, use Algorithm = 'active-set'.
> In fmincon at 395
In tarea1IA at 17

f = 0
f = -9.0000e-009
f = -1.1250e-008
f = -2.0756
f = -2.0756
f = -2.0756
f = -55.4515
f = -55.4515
f = -55.4515
f = -183.7717
f = -183.7717
f = -183.7717
f = -5.8435e+003
f = -5.8435e+003
f = -5.8435e+003
f = -5.8437e+003
Roberto Carlos Guevara Calume

f = -5.8437e+003
f = -5.8437e+003
f = -6.0000e+003
f = -6.0000e+003
f = -6.0000e+003
f = -6000
f = -6.0000e+003
f = -6.0000e+003

Optimization terminated: first-order optimality measure less


than options.TolFun and maximum constraint violation is less
than options.TolCon.
Active inequalities (to within options.TolCon = 1e-006):
lower upper ineqlin ineqnonlin
5
6

x = 1.0e+003 * 3.3333 2.6667

fval = -6000

3. Considere el siguiente problema: Max 2 x 1+3 x 2sujeto a:

2 x 1+ x 2 ≤ 14
−x 1+2 x 2 ≤ 14
2 x 1+2 x 2 ≤10
x 1+ x 2≥ 2
x1, x2≥0
Dibuje la región Factible.
Roberto Carlos Guevara Calume

4. Investigar sobre métodos y/o algoritmos para resolver problemas de programación no lineal, plantear un
ejemplo (no resolver).

Ecuaciones Lineales y no lineales

Una ecuación lineal es aquella en la que sus incógnitas están solas (con su coeficiente) y tienen
exponente 1. La que no cumpla estas condiciones es una ecuación no lineal.

La Programación No Lineal (PNL) provee una serie de herramientas que manipulan enforma
estricta los espacios de búsqueda de solución de los problemas, aprovechan información
matemática del problema para dirigirse en cada paso hacia un punto de buena calidad, mejorando
de esta manera la llegada a la solución. Además, PNL permite el modelamiento de restricciones no
lineales, una característica muy útil para la formulación dada en el presente trabajo a los
problemas que involucran variables enteras. Estas características mencionadas se deben a que en
problemas de PNL, el cumplimiento de las condiciones de Karush-Kuhn-Tucker (condiciones de
primer orden) y algunas condiciones de segundo orden son requeridas para evaluar la factibilidad
y la optimización delos puntos que se van encontrando.

Algoritmo general

Un sistema de ecuaciones es no lineal, cuando al menos una de sus ecuaciones no es de primer


grado.

x2 + y 2=25
{ x + y =7

La resolución de estos sistemas se suele hacer por el método de sustitución, para ello seguiremos
los siguientes pasos:

Se despeja una incógnita en una de las ecuaciones, preferentemente en la de primer grado.

y=7−x

Se sustituye el valor de la incógnita despejada en la otra ecuación.

x 2+ ( 7−x )2=25

Se resuelve la ecuación resultante.

x 2+ 49−14 x+ x 2=25

2 x2 −14 x+ 24=0

x 2−7 x+ 12=0
Roberto Carlos Guevara Calume

7 ±1
x=7 ± √ 49−48 ¿ ¿ =
2 2

x 1=4 , x 2=3

Cada uno de los valores obtenidos se sustituye en la otra ecuación, se obtienen así los valores
correspondientes de la otra incógnita.

x=3 y=7−3 y=4

Algunos métodos numéricos

Levenberg-Marquardt es un método de búsqueda cuya dirección es un cruce entre el método de


Gauss-Newton y direcciones descenso más brusco.

para la resolución de sistemas de ecuaciones no lineales, pueden usarse los siguientes métodos:

Método del Punto Fijo.

Método de Seidel.

Método de Newton.

Método de Cuasi - Newton.

Método de la Máxima Pendiente.

Método de Continuación u Homotopía.

Algunos ejemplos de aplicaciones de ecuaciones no lineales son: la relatividad general,

la teoría del caos, las ecuaciones de Navier - Stokes de dinámica de fluidos, la óptica no

lineal, el sistema del clima de la Tierra, el balanceo de un uniciclo robot o la gestión de

las organizaciones.

Ejemplos del uso de ecuaciones No lineales

Se acostumbra analizar a las ondas sonoras y de la luz como la suma de ondas sinusoidales
simples. Pero, cuando se observa cuidadosamente las ondas en la superficie del agua, se ve que
Roberto Carlos Guevara Calume

para su descripción dicho principio no se puede aplicar, excepto cuando se presentan amplitudes
pequeñas. El estudio de las ondas de amplitud pequeña en el agua fue uno de los principales
tópicos de la física del siglo XIX. Durante mediados del siglo XX el estudio de muchos fenómenos
no lineales, en donde no se satisface el principio de superposición, cobraron especial importancia;
por ejemplo, los haces de láseres en la óptica y las ondas en plasmas exhiben fenómenos
ondulatorios no lineales.

You might also like