Algoritmo Genético para: COLORACION DE GRAFOS¶

Colorear los nodos de un grafo, de modo que si son nodos adyacentes reciben colores distintos.

Importar librería¶

In [ ]:
import ag_lbpt.util as util

Ejecutar algoritmo genético¶

In [ ]:
#--------------------------------------------------------------------------------------------------------------------------------------
# INPUT
#--------------------------------------------------------------------------------------------------------------------------------------
# ArchicoGRAFOcsv = 'col_12n.csv' : Archivo de datos (Grafo: fila1: Nodos, restante: nodos adyacentes) en formato csv
# Iteraciones = 10              : cantidad de veces que se ejecuta el AG
# Generaciones = 50             : Cantidade de generaciones que itera el AG
# Poblacion = 150               : Cantidad de pobladores del AG
# ProbMutacion = 0.1            : Probabilidad de mutación
# TipoMutacion = 'UnPunto'      : El individuo mutante se consigue por permutación de un atributo
# TipoCruce = 'UnPunto'         : la operación cruce se genera en un punto
# GenUnico = False              : Los genes puedenn tener valores repetidos
# IniciFijo = False             : El primer gen puede tomar cualquier valor
# IniciFinFijo = False          : El perimer y último gene puede tomar cualquier valor
# N = 12                        : Cantidad de ciudades
# MinCromosoma = [0,0,0,0,0,0,0,0,0,0,0,0] : Mínimo valor de los genes (mínima valor de color)
# MaxCromosoma : [3,3,3,3,3,3,3,3,3,3,3,3] : Máximo valor de los genes (máxima valor de color)
# TipoDato : ['int','int','int','int','int','int','int','int','int','int','int','int'] : Tipo de dato 
#                                 de los genes, 'int' número entero; 'float' número real
# PobElite = 2                  : Indidivuos de la élite
#--------------------------------------------------------------------------------------------------------------------------------------
# OUTPUT
#--------------------------------------------------------------------------------------------------------------------------------------
# AG        : Objeto algoritmo genético
# Solución  : Cromosoma solución al problema
# Costo     : Costo que implica dicha solución 
#--------------------------------------------------------------------------------------------------------------------------------------

AG, Solucion, Costo = util.agColorGrafo('col_12n.csv', 10, 50, 150, 0.1, 'UnPunto', 'UnPunto', 
                                   False, False, False, 12, [0,0,0,0,0,0,0,0,0,0,0,0], [3,3,3,3,3,3,3,3,3,3,3,3],
                                   ['int','int','int','int','int','int','int','int','int','int','int','int'],
                                   2)
print('Solucion: ', Solucion)
print('Costo: ', Costo)
Solucion:  [1, 2, 0, 0, 2, 1, 1, 3, 3, 3, 3, 3]
Costo:  0
In [ ]:
AG.GraficaCosto()
In [ ]:
util.GraficarGrafo(Solucion,util.Diccionario_SN)

Luis Beltran Palma Ttito, luis.palma@unsaac.edu.pe (autor)

Dennis Iván Candia oviedo, dennis.candia@unsaac.edu.pe (coautor)

Carlos Ramón Quispe Onofre, carlos.quispe@unsaac.edu.pe(coautor)

Willian Zamalloa Paro, willian.zamalloa@unsaac.edu.pe(coautor)

José Mauro Pillco Quispe, jose.pillco@unsaac.edu.pe(coautor)