aco nataly medina

10
OPTIMIZACIÓN POR COLONIA DE HORMIGAS Resumen—El siguiente documento presenta un análisis introductorio relacionado al tema de optimización por colonia de hormigas, mejor conocido por sus siglas en inglés ACO. Debido a que muchos problemas de optimización en configuraciones geométricas son NP-duros, el algoritmo que se propone presenta una solución aproximada, utilizando una técnica metaheurística. Además, se presentará un problema de aplicación al algoritmo denominado como el “Problema del Agente Viajero” o TSP utilizando MATLAB. Índice de TérminosACO, S-ACO, Metaheurística, TSP I. INTRODUCCIÓN LA metaheurística es un proceso de generación iterativo que guía la búsqueda de soluciones combinando diferentes conceptos de diversos campos, como inteligencia artificial, evolución biológica, inteligencia colectiva, entre otros. U Una metaheurística es entonces, un algoritmo general el cual puede ser aplicado a diferentes problemas de optimización con pequeñas modificaciones para adaptarlos al problema en específico. Ejemplos de metaheurísticas son el Temple Simulado, Búsqueda Tabú, Búsqueda Local Iterativa, Cómputo Evolutivo, y Colonia de Hormigas. El siguiente trabajo, presenta este último algoritmo basado en inteligencia colectiva (swarm intelligence). II. OPTIMIZACIÓN BASADA EN COLONIAS DE HORMIGAS La Optimización basada en Colonia de Hormigas (Ant Colony Optimization, ACO) es una metaheurística inspirada en el comportamiento que siguen las hormigas para encontrar los caminos más corotos entre las fuentes de comida y el hormiguero, surgida a partir del trabajo inicial de Dorigo, Maniezzo y Colorni sobre Sistema de Hormigas (Ant System) [1]. Los algoritmos ACO son aptos para resolver problemas de optimización combinatoria. Se basan en una colonia de hormigas artificiales, representadas por agentes computacionales simples, que trabajan de manera cooperativa y se comunican mediante rastros de feromona artificiales. Son esencialmente algoritmos constructivos: en cada iteración del algoritmo, cada hormiga construye una solución al problema, recorriendo un grafo de construcción. Cada arista, (p,q) del grafo representa los posibles pasos que la hormiga puede dar y tiene asociadas dos informaciones que guían el movimiento de la hormiga: - Información heurística, que mide la preferencia heurística, η pq , de moverse desde el nodo p hasta el nodo q, o sea, recorrer la arista. Las hormigas no modifican esta información durante la ejecución del algoritmo. - Información de los rastros de feromona artificiales, miden la “deseabilidad Optimización por Colonia de Hormigas (ACO) (Noviembre 2009) Nataly Medina Rodríguez, CITEDI-IPN, Métodos de Optimización 1

Upload: nalytools

Post on 01-Jul-2015

346 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ACO Nataly Medina

OPTIMIZACIÓN POR COLONIA DE HORMIGAS

Resumen—El siguiente documento presenta un análisis introductorio relacionado al tema de optimización por colonia de hormigas, mejor conocido por sus siglas en inglés ACO. Debido a que muchos problemas de optimización en configuraciones geométricas son NP-duros, el algoritmo que se propone presenta una solución aproximada, utilizando una técnica metaheurística.

Además, se presentará un problema de aplicación al algoritmo denominado como el “Problema del Agente Viajero” o TSP utilizando MATLAB.

Índice de Términos— ACO, S-ACO, Metaheurística, TSP

I. INTRODUCCIÓN

LA metaheurística es un proceso de generación iterativo que guía la búsqueda de soluciones combinando

diferentes conceptos de diversos campos, como inteligencia artificial, evolución biológica, inteligencia colectiva, entre otros.

U

Una metaheurística es entonces, un algoritmo general el cual puede ser aplicado a diferentes problemas de optimización con pequeñas modificaciones para adaptarlos al problema en específico.

Ejemplos de metaheurísticas son el Temple Simulado, Búsqueda Tabú, Búsqueda Local Iterativa, Cómputo Evolutivo, y Colonia de Hormigas.

El siguiente trabajo, presenta este último algoritmo basado en inteligencia colectiva (swarm intelligence).

II.OPTIMIZACIÓN BASADA EN COLONIAS DE HORMIGAS

La Optimización basada en Colonia de Hormigas (Ant Colony Optimization, ACO) es una metaheurística inspirada en el comportamiento que siguen las hormigas para encontrar los caminos más corotos entre las fuentes de comida y el hormiguero, surgida a partir del trabajo inicial de Dorigo, Maniezzo y Colorni sobre Sistema de Hormigas (Ant System) [1].

Los algoritmos ACO son aptos para resolver problemas de optimización combinatoria. Se basan en una colonia de hormigas artificiales, representadas por agentes computacionales simples, que trabajan de manera cooperativa y se comunican mediante rastros de feromona artificiales.

Son esencialmente algoritmos constructivos: en cada iteración del algoritmo, cada hormiga construye una solución al problema, recorriendo un grafo de construcción. Cada arista, (p,q) del grafo representa los posibles pasos que la hormiga puede dar y tiene asociadas dos informaciones que guían el movimiento de la hormiga:

- Información heurística, que mide la preferencia

heurística, ηpq, de moverse desde el nodo p hasta el

nodo q, o sea, recorrer la arista. Las hormigas no modifican esta información durante la ejecución del algoritmo.

- Información de los rastros de feromona artificiales,

miden la “deseabilidad aprendida” del movimiento, τ pq

, de p a q, imitando a la feromona real depositada por las hormigas reales. Esta información se modifica durante la ejecución del algoritmo dependiendo de las soluciones encontradas por las hormigas.

Una vez que cada hormiga ha generado una solución se evalúa la misma y se puede depositar una cantidad de feromona en función de la calidad de su solución.

El modo de operación genérico de un algoritmo ACO incluye dos procedimientos adicionales, la evaporación de los rastros de feromona y las acciones opcionales (daemon actions). La evaporación del rastro de feromona la lleva a cabo el entorno y se usa como un mecanismo que evita el estancamiento en la búsqueda y permite que las hormigas busquen y exploren nuevas regiones de espacio. Las acciones opcionales llamadas en inglés daemon actions, no tienen correspondencia con el comportamiento de las hormigas reales, para implementar tareas desde una perspectiva global.

Algunos ejemplos de estas acciones son:

- Observar la calidad de todas las soluciones generadas y depositar una nueva cantidad de feromona adicional sólo en las aristas asociadas a algunas soluciones

- Aplicar un procedimiento de búsqueda local a las soluciones generadas por las hormigas antes de actualizar los rastros de feromona.

El algoritmo general para ACO se muestra a continuación:

Inicializar();

Optimización por Colonia de Hormigas (ACO) (Noviembre 2009)

Nataly Medina Rodríguez, CITEDI-IPN, Métodos de Optimización

1

Page 2: ACO Nataly Medina

OPTIMIZACIÓN POR COLONIA DE HORMIGAS

for c=1 to Nro_ciclos { for k=1 to Nro_ants ant-k construye solución k; Guardar la mejor solución; Actualizar Rastro (i.e., tij); Reubicar hormigas para el próximo

ciclo;}Imprimir la mejor solución encontrada;

Para la inicialización, se deben fijar:

- El rastro inicial de feromona asociado a cada arista, τ 0,

que es un valor positivo pequeño, normalmente el mismo para todas las aristas

- El número de hormigas en la colonia, k- Los pesos que definen la proporción en la que afectarán

la información heurística.- Los rastros de feromonas en la regla de transición

probabilística, denominados β y α respectivamente.

Para la construcción de una solución por la hormiga k se procede a:

- Se inicia con una solución parcial vacía, que se extiende a cada paso añadiéndole un componente de solución factible elegido entre los vecinos de la solución actual. Esto equivale a encontrar una ruta en el grafo de construcción guiada por el mecanismo que define el conjunto de vecinos viables con respecto a la solución parcial.

- La elección de un vecino viable se realiza de manera probabilística en cada paso de la construcción, dependiendo de la variante ACO utilizada.

- El siguiente es el modelo de probabilidad con retroalimentación para la elección del vecino viable:

pij (k )={ τ i jα ηijβ

∑ τ ihα η ih

β para j∈No visitadas

0 en otrocaso}

donde,

τ ij es el valor de feromona asociado a la arista ( pi , p j)

ηij=1d ij

es el valor heurístico asociado a la arista ( pi , p j), (

d ijes la distancia euclídea entre los puntos pi y p j).

β y α son parámetros positivos que determinan la importancia relativa de la feromona con respecto a la información heurística.

Para la actualización del rastro, se aumenta el nivel de

feromona en los caminos prometedores y disminuye el de los caminos no tan buenos.

- Primero, se reducen todos los valores de feromona por medio del proceso de evaporación.

- Después, se incrementa el nivel de feromona al conjunto de soluciones buenas.

τ ij=(1−ρ)τ ij+∆ τ ij

donde,

ρ∈ (0 ,1 ] Es el factor de persistencia del rastro.

∆ τ ij= ∑k=1

n úm. Hormigas

∆k τ ij Es la acumulación de rastro,

proporcional a la calidad de las soluciones.

∆k τ ij={ 1Lk

sila hormigak utilizó la arista pi , p j

enotro caso

Lk Representa el valor objetivo de la solución k (aparece en

el denominador para problemas de minimización)

La evaporación de feromona evita una convergencia demasiado rápida del algoritmo.

III. MODELO ESTOCÁSTICO (EXPERIMENTO DE DOBLE PUENTE)

Siendo,

Ψ :Hormigas por segundo que cruzaban el puente en cada dirección a velocidad constante, depositando una unidad de feromona.ls y ll :Camino corto y largo

Escogiendo el camino corto t s=l s/v.

El camino largo es r t s, donde r=ll

ls

2

Page 3: ACO Nataly Medina

OPTIMIZACIÓN POR COLONIA DE HORMIGAS

La probabilidad pia ( t ) de que una hormiga llegue a tomar una

decisión en i∈ {1,2 } y seleccione una rama a∈ {s , l} en un

instante de tiempo t, está dada por una función del total de

feromona en la rama φ ia(t ), la cual es proporcional al número

de hormigas que han usado esa rama hasta el tiempo t.Probabilidad de escoger el camino más corto:

pis ( t )=( t s+φis ( t ) )α

(t s+φ is ( t ) )α+ (t s+φil (t ) )α

Donde α=2

El modelo asume que la cantidad de feromona en una rama es proporcional al número de hormigas que han utilizado la rama; en este modelo no se considera la evaporación de la feromona.

IV. HORMIGAS ARTIFICIALES

Las hormigas se mueven eligiendo el camino de manera probabilística:

pis ( t ): Es la probabilidad para una hormiga localizada en el

nodo i en el tiempo t para elegir el camino más corto, y pil (t ) la probabilidad para elegir el camino más largo.Estas probabilidades están en función del rastro de feromona

φ ia(t ) de hormigas en el nodo i (i∈ {1,2 }) encontrada en la

rama a, (a∈ {s , l}):

pis (t )=[φis ( t ) ]α

[φ is (t ) ]α+[ φil (t ) ]α

pil (t )=[φ il (t ) ]α

[φ is (t ) ]α+[ φil (t ) ]α

La actualización del rastro en ambas ramas:

φ is (t )=φis ( t−1 )+ p is ( t−1 ) mi (t−1 )+ p js ( t−1 )m j (t−1 )(i=1 , j=2 ; i=2 , j=1)

φ il ( t )=φil (t−1 )+ p il ( t−1 ) mi ( t−1 )+ p jl ( t−r ) m j (t−r )(i=1 , j=2 ; i=2 , j=1)

Donde mi(t) es el número de hormigas en el nodo i en el tiempo t, dado por:

mi (t )=p js ( t−1 ) m j ( t−1 )+p jl ( t−r ) m j ( t−r )(i=1 , j=2 ; i=2 , j=1)

El modelo considera:

- Un comportamiento promedio del sistema, no uno estocástico.

- Es un modelo en tiempo discreto, utiliza ecuaciones de diferencias.

V. HORMIGAS ARTIFICIALES Y TRAYECTORIAS DE MÍNIMO COSTO

Consideremos un grafo G=(N , A ) donde N es el conjunto de n =|N| nodos y A es el conjunto de arcos indirectos que los conectan.Con el uso de memoria, las hormigas pueden implementar un número de comportamientos útiles que permiten construir las soluciones al problema del mínimo costo de trayectoria.

Estos comportamientos son:

a) Solución probabilística a través de rastros de feromonas, sin actualización de feromona de frente.

b) Trayectoria determinística de vuelta con un ciclo de eliminación y con actualización de feromona.

c) Evaluación de la calidad de las soluciones generadas y usar la solución para determinar la cantidad de feromona que se ha depositado.

d) Implementación de la evaporación de la feromona.

El algoritmo Simple ACO (S-ACO) se implementa esos comportamientos más la evaporación de la feromona.

a) Solución probabilística: las hormigas en S-ACO, van del nido a la comida, por lo que van hacia adelante (forward mode), y van en retroceso si van de la comida al nido (backward mode).

a. En forward mode, las hormigas construyen una solución escogiendo de manera probabilística el siguiente nodo.

b. Dado el grafo G=(N , A ), dos nodos

i , j∈N son vecinos si existe un arco

i , j∈ A .

c. La opción probabilística está dada por el rastro de feromona que antes ha sido depositada.

d. Las hormigas en forward mode, no dejan rastro de feromona, solo en retroceso.

b) Retroceso determinística y actualización de la feromona: El uso de memoria permite que una hormiga trace de nuevo el rastro de feromona mientras busca el nido.

a. Implementan ciclos de eliminación.

3

Page 4: ACO Nataly Medina

OPTIMIZACIÓN POR COLONIA DE HORMIGAS

c) Actualización de la feromona basada en la calidad de la solución: La intensidad de la feromona decrece con respecto al tiempo debido a la evaporación.

VI. S-ACO

Para cada arco (i , j) en el grafo G=(N , A ) asociamos una

variable τ ij llamada rastro de feromona artificial (artificial pheromone trail).

- Comportamiento de las hormigas en la búsqueda del camino

(Ant´s Path-Searching Behavior)

En cada nodo, información local almacenada en sí mismo, o en los arcos, son leídos por la hormiga y decide de una manera estocástica a que nodo se moverá la siguiente vez.

1. Al principio de cada proceso, una cantidad constante

de feromona τ ij=1 , ∀(i , j)∈ A se asigna a todos

los arcos.2. Cuando se localiza en el nodo i una hormiga k utiliza

el rastro de feromona τ ij para sacar obtener la

probabilidad de escoger el siguiente nodo j:

pijk={ τ ij

α

∑ l∈N ik τ il

α si j∈N ik

0 , si j∉N ik }

Donde N ik es la vecindad de la hormiga k en el nodo i,

contiene todos los nodos conectados directamente al nodo i. De esta manera, las hormigas evitan regresar a este nodo.

- Trazado del camino y actualización de la feromona

(Path Retracing and Pheromone Update)

1. Cuando llegan al nodo destino, las hormigas cambian de forward mode a backward mode para regresar y

vuelven a trazar el mismo camino hacia el nodo fuente.

2. Antes de regresar, eliminan ciclos que se crearon mientras se buscaba el nodo destino.

3. Durante el regreso, la k-ésima hormiga deposita una

cantidad de ∆ τ k feromona, en los arcos que ha

visitado:

τ ij ← τ ij+∆ τ k

- Evaporación del Rastro de Feromona

(Pheromone Trail Evaporation)

τ ij ←(1−ρ)τ ij donde ρ∈¿ es un parámetro.

VII. ALGORITMOS ACO

- MinMax-AS (control sobre los valores del rastro)

- AS-rank (ranking de soluciones)

- AS-elistim (sólo la mejor solución)

- Ant Colony System (ACS)

- Ant-Q (basado en Q-Learning)

VIII.APLICACIONES

- TSP

- Scheduling

- Vehicle Routing Problem (VRP)

- Data Mining (Ant-Miner & Ant-Tree)

- Problemas de Grafos (Clique, Coloreo, etc.)

- Ruteo Dinámico (ANT-Net)

- Problemas con funciones continuas y restricciones

- Geometría Computacional

4

Page 5: ACO Nataly Medina

OPTIMIZACIÓN POR COLONIA DE HORMIGAS

IX. IMPLEMENTACIÓN DE ACO PARA EL PROBLEMA DEL AGENTE VIAJERO

Suponiendo un problema como se muestra en la siguiente figura, en la cual, se debe solucionar la ruta óptima para visitar las siguientes ciudades:

Definiendo el espacio de búsqueda, se deberá considerar la complejidad del problema tomando en cuenta las posibles combinaciones,

Por lo que cada punto en el grafo, es una permutación de las ciudades.

El espacio de búsqueda se puede representar mediante el siguiente diagrama de árbol, definiendo las posibles combinaciones:

La mejor solución viene dada por:

Sk: Solución o permutación construida por la hormiga k

Sk = Ciudad_Inicial; (escogida de acuerdo a algún criterio) mientras no se haya completado el tour{ Seleccionar próxima ciudad (j) con probabilidad (i es la última ciudad incluida)

pijk={ τ ij

α

∑ l∈N ik τ il

α si j∈N ik

0 , si j∉N ik }

Sk = Sk Å j }

Su implementación se puede observar en el Apéndice A, utilizando MATLAB para efectos de simulación.

X.REFERENCIAS

[1] M. Dorigo ,T. Stüztle, Ant Colony Optimization, Massachussetts Institute of Technology, 2004.[2] http://iridia.ulb.ac.be/~mdorigo/ACO/ACO.html [3] http://www.scholarpedia.org/article/Ant_colony_optimization [4] Eric Bonabeau, M. Dorigo, Guy Theraulaz. Swarm intelligence: from natural to artificial systems, Oxford University Press

3 4

2

51

Tamaño N=5, 5!=120 Posibles soluciones N=6, 6!=720 N=100, 100! = ?

3

1 2 54

41 25

5

51

2

21

1

1 5

1

5

34

21

5

Page 6: ACO Nataly Medina

OPTIMIZACIÓN POR COLONIA DE HORMIGAS

XI. APÉNDICE A: CÓDIGO FUENTE

1. main.m

El siguiente archivo considera los siguientes parámetros para su ejecución:

- x: vector de ubicación en el eje x de la ciudad (coordenada x)

- y: vector de ubicación en el eje y de la ciudad (coordenada y)

- d: Distancia total para cada posible ruta entre ciudades

- t: Trazado de la ruta primaria, ones forma una matriz de n x n. Representación del rastro de feromona puede ser realizado a través de una matriz de números reales (t) de n x n.

- h: Arco de conveniencia, típicamente 1/dij, uno de los parámetros para calcular la probabilidad de elegir un arco óptimo. (Heurística Local)

- iter: Número de ciclos

- alpha: Orden del efecto de visión de las hormigas. El sistema admite que las hormigas posean una cantidad de visibilidad nij, asociada con cada tramo, en un valor que depende de la distancia del mismo (los cercanos tienen mayor preferencia que los lejanos)

- beta: Orden del efecto de trazo

- e: Coeficiente de evaporación

- m: número de hormigas

- n: número de nodos (tamaño de x)

- el: Coeficiente de costo de eliminación común

[x,y,d,t,h,iter,alpha,beta,e,m,n,el] = info_hormigas; for i=1:iter [app] = p1ra_Posicion_hormigas(m,n); [at] = ciclo_hormigas(app,m,n,h,t,alpha,beta); at = horzcat(at,at(:,1)); %Concatenar [cost,f]= cost_hormigas(m,n,d,at,el); [t] = actualizacion_rastro(m,n,t,at,f,e); costoa(i) = mean(cost); [mincost(i),number] = min(cost); %Regresa los índices del vector donde están los mínimos besttour(i,:) = at(number,:); %La mejor ruta es la seleccionada con respecto al índice del mínimo en la matriz del tour iteracion(i)= i; end subplot(2,1,1);

plot(iteracion,costoa);title('Promedio de costo (distancia) VS Núm. de ciclos');xlabel('Iteración');ylabel('Distancia'); [k,l]=min(mincost); for i=1:n+1 X(i)= x(besttour(l,i)); Y(i)= y(besttour(l,i));end subplot(2,1,2);plot(X,Y,'--rs','LineWidth',2,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',10)xlabel('X');ylabel('y');axis('equal');for i=1:n text(X(i)+.5,Y(i),['\leftarrow nodo ',num2str(besttour(l,i))]);endtitle(['Curso óptimo de tamaño: ',num2str(k)]);

2. info_hormigas.m

function [x,y,d,t,h,iter,alpha,beta,e,m,n,el] = info_hormigas; iter=100;%Núm. de Iteracionesm=200;%Núm. de Hormigas x=[8 0 -1 2 4 6 3 10 2.5 -5 7 9 11 13];y=[2 4 6 -1 -2 0.5 0 3.7 1.8 1 0 4 3 2]; n=length(x);%Núm. de Nodos for i=1:n %Matriz de distancias entre ciudades for j=1:n d(i,j)=sqrt((x(i)-x(j))^2+(y(i)-y(j))^2); endend e=.1;%Coef. Evaporación alpha=1; %Orden del efecto de visiónbeta=5; %Orden del efecto de trazo for i=1:n %Matriz de visión for j=1:n if d(i,j)==0 h(i,j)=0; else h(i,j)=1/d(i,j); %Conveniencia del camino i,j (conocimiento a priori, usualmente 1/dij end endend

6

Page 7: ACO Nataly Medina

OPTIMIZACIÓN POR COLONIA DE HORMIGAS

t=0.0001*ones(n);%Trazado primarioel=.96;%Coeficiente del costo común de eliminación

3. p1ra_Posición.m

function [app]=p1ra_Posicion_hormigas(m,n); rand('state',sum(100*clock)); %Reinicia valores por cada estado y presenta random numbers en ese estado for i=1:m %Hasta la última hormiga app(i,1)=fix(1+rand*(n-1));%Ubicación hormigas por nodo (primaria), fix end

4. ciclo_hormigas.m

function [at] = ciclo_hormigas(app,m,n,h,t,alpha,beta); %app Ubicación de hormigas por nodo for i=1:m %Hasta la última hormiga mh=h; for j=1:n-1 c=app(i,j); mh(:,c)=0; temp=(t(c,:).^beta).*(mh(c,:).^alpha); s=(sum(temp)); p=(1/s).*temp; %Probabilidad de elegir el camino óptimo r=rand; s=0; for k=1:n s=s+p(k); %Seleccionar la siguiente ciudad if r<=s %Si es óptimo app(i,j+1)=k; %Crear la nueva matriz del tour break end end endendat=app;% Generación de la matriz del tour durante el ciclo

5. cost_hormigas.m

function [cost,f]= cost_hormigas(m,n,d,at,el);% m: Hormigas% n: Nodos% d: Distancia% at: Tour con probabilidad

% el: Coeficiente de costo de eliminación común for i=1:m %Hasta la última hormiga s=0; for j=1:n %Hasta la última ciudad s=s+d(at(i,j),at(i,j+1)); end f(i)=s; %Valor objetivo de la solución kendcost=f;f=f-el*min(f);%Eliminación de costo común

6. actualización_rastro.m

%at: Tour seleccionado%f: Valor objetivo de la solución k%e: Coeficiente de evaporación, persistencia del rastro function [t] = actualizacion_rastro(m,n,t,at,f,e);for i=1:m %Hormigas for j=1:n %Nodos dt=1/f(i); %Acumulación de rastro t(at(i,j),at(i,j+1))=(1-e)*t(at(i,j),at(i,j+1))+dt; %Actualizando rastro endend

XII. APÉNDICE B: RESULTADOS

7

Page 8: ACO Nataly Medina

OPTIMIZACIÓN POR COLONIA DE HORMIGAS

0 10 20 30 40 50 60 70 80 90 10040

60

80

100Promedio de costo (distancia) VS Núm. de ciclos

Iteración

Dis

tanc

ia

-5 0 5 10 15-2

0

2

4

6

X

y

nodo 6 nodo 7

nodo 9

nodo 2

nodo 3

nodo 10

nodo 4 nodo 5

nodo 11

nodo 14

nodo 13 nodo 8

nodo 12

nodo 1

Curso óptimo de tamaño: 45.562

0 10 20 30 40 50 60 70 80 90 10040

50

60

70

80Promedio de costo (distancia) VS Núm. de ciclos

Iteración

Dis

tanc

ia

-5 0 5 10 15-2

0

2

4

6

X

y

nodo 11

nodo 5

nodo 4

nodo 10

nodo 3

nodo 2

nodo 9

nodo 7 nodo 6

nodo 1

nodo 12 nodo 8 nodo 13 nodo 14

Curso óptimo de tamaño: 45.562

0 10 20 30 40 50 60 70 80 90 10040

50

60

70

80Promedio de costo (distancia) VS Núm. de ciclos

Iteración

Dis

tanc

ia

-5 0 5 10 15-2

0

2

4

6

X

y

nodo 12 nodo 8 nodo 13 nodo 14

nodo 11 nodo 6

nodo 5

nodo 7 nodo 4

nodo 10

nodo 3

nodo 2

nodo 9 nodo 1

Curso óptimo de tamaño: 45.7844

8