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 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 r equerimiento mínimo diario (RMD): Tipo 1
Tipo 2
RMD
Almidón Proteína
5 4
7 2
8 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.
× Restricciones
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:
Roberto Carlos Guevara Calume
Usando matlab se encontró encontró el siguiente programa general que usa dos funciones Objfun Objfun y Confun, el código y los resultados de salida son :
Programa principal
Funcion Objfun
Funcion Confun
%Realizado por:- Marchena Williams % - Ornelas Carlos %Supervizado por: GonzalezLongatt, F. %Fecha: 12-02-2006 %UNEFA - Núcleo Maracay %--------------------------------clc % Borra la pantalla clear % Borra todas las variables disp(' disp(' ') ') % DISP: muestra una cadena de caracteres disp(' disp(' Ejemplo 1') 1') disp('--------------------------' disp('--------------------------') ) disp(' disp(' Condiciones Iniciales del programa') programa' ) x0=[0,0] options=optimset('LargeScale' options=optimset( 'LargeScale', ,'off '); [x,fval]=fmincon(@objfun,x0,[],[], [],[],[],[],@confun,options) %---------------------------------
%Se define la función objetivo con signo contrario
function [c, ceq] = confun(x) % restricciones de desigualdades lineales o no lineales
function f = objfun(x) f=-(9/10)*x(1)(9/8)*x(2)
c=[-x(1); -x(2);x(1)5000;x(2)4000;(2/25)*x(1)+(1/8 )*x(2)-600;x(1)+x(2)6000]; % restricciones de igualdades lineales o no lineales ceq = [];
SALIDA
Ejemplo 1 -----------------------------------------------------------Condiciones 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 active-set without this warning, use Algorithm = 'active-set'. 'active-set'. > In fmincon at 395 In tarea1IA at 17 f f f f f f f f f f f f f f f f
= = = = = = = = = = = = = = = =
0 -9.0000e-009 -1.1250e-008 -2.0756 -2.0756 -2.0756 -55.4515 -55.4515 -55.4515 -183.7717 -183.7717 -183.7717 -5.8435e+003 -5.8435e+003 -5.8435e+003 -5.8437e+003
Roberto Carlos Guevara Calume f f f f f f f f
= = = = = = = =
-5.8437e+003 -5.8437e+003 -6.0000e+003 -6.0000e+003 -6.0000e+003 -6000 -6.0000e+003 -6.0000e+003
Optimization terminated: first-order optimality measure less than options.TolFun and maximum constraint violation is less than options.TolCon. options.TolCon. Active inequalities (to within options.TolCon = 1e-006): lower upper ineqlin ineqnonlin 5 6 x =
1.0e+003 *
fval =
3.3333
2.6667
-6000
3. Considere el siguiente problema: Max sujeto a:
Dibuje la región Factible.
Roberto Carlos Guevara Calume
Investigar sobre métodos y/o algoritmos para resolver problemas de programación no lineal, plantear un ejemplo (no resolver).
4.
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.
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.
Se sustituye el valor de la l a incógnita despejada en la otra ecuación.
Se resuelve la ecuación resultante.
Roberto Carlos Guevara Calume
Cada uno de los valores obtenidos se sustituye en la otra ecuación, se obtienen así los valores correspondientes de la otra incógnita.
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 sig uientes 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 l a Tierra, el balanceo de un uniciclo r obot 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 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
Roberto Carlos Guevara Calume
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.