Algoritmo Genético para: N-REINAS¶

Colocar N reinas en un tablero N x N, de modo que no se ataquen mutuamente.

Importación de librería¶

In [ ]:
import ag_lbpt.util as util

Ejecución de algoritmo genético¶

In [ ]:
#--------------------------------------------------------------------------------------------------------------------------------------
# INPUT
#--------------------------------------------------------------------------------------------------------------------------------------
# Iteraciones = 5               : cantidad de veces que se ejecuta el AG
# Generaciones = 30             : Cantidade de generaciones que itera el AG
# Poblacion = 25                : Cantidad de pobladores del AG
# ProbMutacion = 0.5            : Probabilidad de mutación
# TipoMutacion = 'Permuta'      : El individuo mutante se consigue por permutación de atributos
# TipoCruce = 'Complemento'     : la operación cruce es eligiendo M atributos de primer ancestro y el resto por complemento
# GenUnico = True               : Los genes tiene valores únicos o distintos (cada reina está en una columna distinta)
# IniciFijo = False             : El primer gen siempre es 1. La ciudad de partida siempre es 1
# IniciFinFijo = False          : Es falso ya que el parametro anterior es True
# N = 12                        : Cantidad de reinas
# PobElite = 3                  : 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.agNReinas(5, 30, 25, 0.5, 'Permuta',
                                   'Complemento', True, False, False, 16, 3)
print('Solucion: ', Solucion)
print('Costo: ', Costo)
Solucion:  [6, 14, 11, 7, 0, 15, 3, 12, 8, 2, 4, 9, 1, 5, 13, 10]
Costo:  2

Muestra evolucion de costo¶

In [ ]:
AG.GraficaCosto()

Muestra solución a N-REINAS y graba en archivo csv¶

In [ ]:
util.GraficaReinas(Solucion, 'reinas.csv')

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)