tarea 6 control inteligente

6
CENTRO NACIONAL DE INVESTIGACIÓN Y DESARROLLO TECNOLÓGICO POSGRADO DE ELECTRÓNICA CONTROL INTELIGENTE TAREA # 6 TEMA: “DERIVATIVE-FREE OPTIMIZATION” CATEDRÁTICO: DR. ENRIQUE QUINTERO-MÁRMOL MÁRQUEZ ALUMNO(S): NAMIGTLE JIMÉNEZ JESÚS RÍOS RUIZ CARLOS SÁNCHEZ GOMEZ ARNOLD JONATHAN TORRECILLA COPTO ERIK FRANCISCO

Upload: erik-francisco-torrecilla-copto

Post on 13-Nov-2015

2 views

Category:

Documents


0 download

DESCRIPTION

Control Inteligente

TRANSCRIPT

CENTRO NACIONAL DE INVESTIGACIN Y

DESARROLLO TECNOLGICO

POSGRADO DE ELECTRNICA

CONTROL INTELIGENTE

TAREA # 6

TEMA:

DERIVATIVE-FREE OPTIMIZATION

CATEDRTICO:DR. ENRIQUE QUINTERO-MRMOL MRQUEZ

ALUMNO(S):NAMIGTLE JIMNEZ JESS ROS RUIZ CARLOS SNCHEZ GOMEZ ARNOLD JONATHAN TORRECILLA COPTO ERIK FRANCISCO

CUERNAVACA MOR., A 19 DE MARZO DEL 2015.

Prctica 7.2Al principio del programa tsp.m, tenemos que crear una matriz distancia en la cual el elemento en la fila i y la columna j en la matriz distancia es igual a la distancia de viaje entre la ciudad i y la ciudad j. En tsp.m esto se hace por medio de 2 ciclos for anidados.for i = 1:NumCity, for j = 1:NumCity, distance(i, j) = norm(loc(i, :) - loc(j, :)); endend

donde NumCity es el nmero de ciudades. Puedes modificar este cdigo para evitar el uso de los ciclos for?S, podemos evitar los ciclos for usando ciclos while pero no se puede evitar el uso de ciclos debido a que de ello depende la creacin de la matriz distancia.while i [x,fval] = fminsearch(banana,[-1.2, 1])Al dar enter el programa nos muestra los valores de x1 y x2 que minimizan el valle parablico, as como el valor de la funcin evaluada en ese punto.

>> x1=x(1,1)x1 =

1.0000

>> x2=x(1,2)

x2 =

1.0000

El valor de la funcin evaluada en este punto es:fval =

8.1777e-10

Problema 7.9Repita el ejercicio 7.8 usando el mtodo de la bsqueda aleatoria. Compare el tiempo de corrida promedio y el valor de la funcin objetivo despus de 10 corridas con aquellos obtenidos con fminsearch. Para proceder a obtener la minimizacin de la funcin se procedi a realizar el programa para bsqueda aleatoria, correr el programa con la funcin y los datos dados y comparar los resultados con los obtenidos en el problema 7.8.El programa utilizado para la bsqueda aleatoria fue el siguiente y se da crdito al autor del programa original Namir Shammas. All rights reserved, el cual escribi el cdigo y nosotros lo modificamos para nuestro proposito:

function [XBest,BestF,Iters]= Bus_aleatoria(N, X, SearchRadius, Eps_Fx, MaxIter, myFx)% Function performs multivariate optimization using the% random 'drift' method.%% Input%% N Numero de variables% X Vector con valores iniciales% SearchRaduis vector radio de busqueda% Eps_Fx tolerancia del error% MaxIter Numero mximo de iteraciones% myFx nombre de la funcion a optimizar (funcion Objetivo)%% Output%% XBest Vector Variables optimizadas% BestF Valor ptimo de la funcion objetivo con las variables optimizadas% Iters iteraciones totales realizadas para encontrar valores optimos % XBest = X + SearchRadius * (rand(N) - 0.5);BestF = feval(myFx, XBest, N);LastBestF = 100 * BestF + 100; Iters = 0; for k=1:MaxIter Iters = Iters + 1; X = XBest + SearchRadius * (rand(N) - 0.5); F = feval(myFx, X, N); if F < BestF XBest = X; LastBestF = BestF; BestF = F; end if abs(LastBestF - BestF) < Eps_Fx break endend

Para poder ejecutar correctamente este programa se necesit crear un archivo llamado fx1 el cual es una funcion en matlab que contiene nuestra funcion objetivo, cuyo cdigo es el siguiente:

function y=fx1(X, N) y=100*(X(2)-X(1)^2)^2+(1-X(1))^2;end

Una vez teniendo ambos script se procedi a correr el programa de la siguiente manera:[XBest,BestF,Iters]=Random_Search3(2,[-1.2 1], [1 1], 1e-9, 100000, 'fx1')Y los resultados obtenidos fueron los siguientes:XBest = 0.9909 0.9824BestF = 1.1283e-04Iters = 100000>> x1=XBest(1,1)x1 = 0.9909>> x2=XBest(1,2)x2 = 0.9824Al obtener estos resultados y compararlos con los obtenidos en el problema 7.8 podemos observar que los resultados son muy aproximados, ya que los valores obtenidos se muestran a continuacin:fminsearchBus_aleatoria

X110.9909

X210.9824

Con esta tabla nos damos cuenta de lo antes ya mencionado, por ultimo solo resta agregar que en el mtodo de bsqueda aleatoria, tenemos la ventaja de aproximar nuestro resultado al valor real tanto como queramos modificando ya sea el nmero de iteraciones mximas y/o la tolerancia del error.