Sie sind auf Seite 1von 5

Optimizacion de Circulos en R3 mediante Algoritmo Genetico

Javier Lopez Morales


Centro de Investigacion y Desarrollo Industrial
jlopez@cidesi.edu.mx

Resumen
En el presente trabajo se hablar
a de la implementacion de un algoritmo para la optimizacion
de un circulo usando n
umeros aleatorios.
Se explicar
a lo que se hizo, y los resultados obtenidos del algoritmo implementado asi como el
codigo empleado, mostrando conclusiones y el trabajo que faltara para desarrollar un algoritmo
que muestre resultados positivos y con mayor exactitud posible.
Palabras clave: Optimizaci
on de circulos, n
umeros aleatorios, algoritmo genetico

1.

Introducci
on

Como se menciona en el titulo, se abordara un poco de lo que son los algoritmos geneticos,
Existen muchos metodos para la identificacion de numeros aleatorios, estos son muy usados para
diversas aplicaciones y de como algunos dependiendo de su implementacion son mas precisos a
comparacion de otros metodos.
Los algoritmos geneticos son series de pasos organizados que describen el proceso que se debe
llevar a cabo para llegar a una solucion a un problema especifico. Esta herramienta surgio en el
a
no de 1970 de la mano de John Henry Holland, siendo una linea prometedora en la tematica
de inteligencia artificial. Estos algoritmos deben su nombre a que se inspiraron en la evolucion
biol
ogica y su base genetico-molecular. estos hacen que una poblacion evolucione al someterla a
acciones aleatorias, parecidas a las que sufre la evolucion biologica (mutaciones y recombinaciones
geneticas).
Diferentes tecnicas para la optimizacion de estos algoritmos han sido desarrollados a traves
de los a
nos. Muchos de estos intentos son muy antiguos, y tamabien varia la precision que estos
muestran en su implementaci
on.

1.1.

K-Means

Este es uno de los algoritmos de aprendizaje no supervisado mas simples y conocidos para
resolver el problema de la clasificaci
on automatica.
El procedimiento radica en clasificar un conjunto dado de datos en cierto n numero de grupos(clusters) fijados a priori (se asume k grupos). La idea principal es definir k centroides(n
ucleos),
uno para cada grupo. Posteriormente se analiza cada individuo (punto en el conjunto de datos
inicial) y se asocia con el n
ucleo m
as cercano. [1]
K

D(xi , cj )

Inercia =
j=1 ij

(1)

Donde xi representa al individuo i y cj al centroide j. En este caso D es una distancia,


usualmente Eucldea, y como para los datos clasicos cada una de las V variables corresponden
a un valor numerico, basta con realizar restas para determinar la distancia de un individuo con
respecto a otro:
V

(xi v cj v)2 = ||xi cj ||

D(xi , cj ) =

(2)

v=1

La ventaja principal de este algoritmo es la rapidez con la que encuentra la clasificacion optima,
no obstante la agravante es que dicho optimo no es necesariamente el optimo global, ya que por
su estrategia de b
usqueda el algoritmo cae en mnimos locales.

1.2.

Algoritmo gen
etico

Un Algoritmo Genetico (GA, por sus siglas en ingles) es una tecnica de b


usqueda usada en
computaci
on para encontrar la solucion exacta o aproximada en problemas de optimizacion y
b
usqueda.
Los algoritmos geneticos est
an en la categora de heursticas de b
usqueda global. Estos son una
clase particular de algoritmos evolutivos, los cuales usan tecnicas basadas en la evolucion natural,
tales como herencia, mutaci
on, seleccion y cruzamiento (tambien llamada recombinacion) son una
gran herramienta muy utilizada en la optimizacion, gracias a que pueden aplicarse al problema
de clasificaci
on autom
atica, el cual puede verse como el problema de minimizar o maximizar la
inercia intraclase (entre los grupos). Resolver un problema de optimizacion consiste en encontrar
un conjunto de valores adecuados de forma que la solucion representada por estos valores i S
satisfaga la siguiente desigualdad:
f (i ) f (i), i S

2.

(3)

Desarrollo del Proyecto

Para el desarrollo del proyecto se elaboro el algoritmo para la generacion de n


umeros aleatorios. La figura 1 muestra el algoritmo para generar numeros aleatorios.

datos =[ rand (350 ,1) rand (350 ,1) rand (350 ,1) ];
figure ;
plot3 ( datos (: ,1) , datos (: ,2) , datos (: ,3) , . r ) ;
hold on
grid on

Figura 1: C
odigo para generacion de n
umeros aleatorios
Con el cual generamos una nube de n puntos aleatorios en (x, y, z) y la graficamos para
observarla en el plano tridimensional de la figura 2.

Figura 2: Puntos aleatorios en el plano (x, y, z)


Una vez que tenemos nuestra poblacion se procede a calcular el centroide de nuestros puntos
aleatorios, este lo obtenemos a partir de la media aritmetica la cual viene dada por la formula.
x
=

1
n

ai =
i=1

a1 + a2 + . . . + an
n

(4)

Esta nos hace un promedio al sumar a todos nuestros puntos en el espacio R3 para despues
dividirlo entre el numero total de muestras de nuestra poblacion aleatoria. Para generar una distancia considerable hacemos uso de a desviacion estandar, la cual esta dada por.

s2 =

n
i=1 (xi

x
)2
n1

(5)

Y que nos servira como radio entre la media y la desviacion estandar para generar una esfera
que encierre a nuestros valores mas significativos, discriminando a todos los que se encuentren
fuera de nuestro rango.

Figura 3: Gr
afica con la media aritmetica y la desviacion estandar
En la figura 3 Se puede observar al centroide de los puntos aleatorios que uestra nuestra media
aritmetica y esta representada con una X en color azul, y a un costado, representado en un circulo

en color azul se ubica la desviacion estandar la cual nos muestra el radio de nuestra esfera que
debemos graficar.

2.1.

Programa

A contiuaci
on en la figura 4 se muestra el programa que se obtuvo al final, faltando en el la
discriminacion de los puntos fuera del radio de la desviacion estandar, asi como el ciclo que logre
visualizar la esfera en la grafica en R3 .

clc
clear all
close all
t =0: pi /40:2* pi ;
datos =[ rand (350 ,1) rand (350 ,1) rand (350 ,1) ];
figure ;
plot3 ( datos (: ,1) , datos (: ,2) , datos (: ,3) , . r ) ;
hold on
grid on
med1 = mean ( datos ,1) ;
plot3 ( med1 (: ,1) , med1 (: ,2) , med1 (: ,3) , x ) ;
s = std ( datos ,1) ;
plot3 ( s (: ,1) ,s (: ,2) ,s (: ,3) , o ) ;
x =( s (: ,1) *( cos ( t ) ) + med1 (: ,1) ) ;
y =( s (: ,2) *( sin ( t ) ) + med1 (: ,2) ) ;
z =( s (: ,3) *( sin ( t ) ) + med1 (: ,3) ) ;
plot3 (x ,y ,z , b )

Figura 4: Codigo empleado final

3.

Resultados

La implementaci
on de nuestro algoritmo nos permite visualizar un circulo el cual dentro se
mantienen los valores que deseamos conservar, por el contrario, fuera de este circulo se ubican
aquellos puntos que deseamos discriminar de nuestra grafica, en la figura 5 podemos observar
dicho circulo de color azul.

Figura 5: Gr
afica con la media aritmetica y la desviacion estandar

4.

Conclusiones

En conclusion de este trabajo podemos observar que es posibe filtrar datos que se ubiquen
fuera de un rango eseado, lamentablemente no se ha alcanzado a terminar el codigo que mostrara
el resultado fiinal pero se tiene en mente los alcances que faltan dentro del trabajo, dentro de los
cuales estan elaborar los ciclos for que permitan visualizar el barrido de nuestra esfera en R3 y
que con esto se implementaria un filtro al poder modificar los datos aleatorios que se observan en
la grafica, y eliminar aquellos datos que pretendemos discriminar de nuestro algoritmo.

Referencias
[1] Fabio Fern
andez Jimenez, Alex Murillo Fernandez Clasificaci
on Autom
atica Simb
olica por
medio de Algoritmos Geneticos, Revista de Matematica: Teora y Aplicaciones, (2009)
[2] Bernabe Dorronsoro Daz, Dise
no e Implementaci
on de Algoritmos Geneticos Celulares para
Problemas Complejos, Tesis Doctoral, Lenguajes y Ciencias de la Computacion /Universidad
de M
alaga, (2006)

Das könnte Ihnen auch gefallen