Professional Documents
Culture Documents
CICLO: VII
ALUMNOS:
- Lecca Reyna Edison 0201514047
- Lopez Zapata Francisco 0201514037
- Reyes Avalos Deivy 0201514004
- Vargas Tirado Danica 0201514050
Un problema típico de programación es el que nos ocupa, “el problema de la mochila”, que
responde a la siguiente situación: imagínese hacer una excursión a la que solo podemos llevar una
mochila que, lógicamente, tiene una capacidad limitada. Cada objeto que introducimos ocupa un
volumen dentro de la misma y en contrapartida durante el viaje nos proporcionará un beneficio o
utilidad (ejemplo: una cantimplora), el problema surge cuando debemos elegir qué objetos
seleccionar para llevar en la mochila de forma que nuestro beneficio sea máximo (tengamos todo
lo necesario) sin exceder su capacidad.
Los datos del problema son los siguientes:
• n: número de objetos entre los que se puede elegir.
• pi: peso del objeto i-ésimo que no es más que una forma de hacer referencia a un objeto
cualquiera que pueda ser incluido en la mochila -, es decir, ci representa el coste de escoger un
objeto, en tanto en cuanto va a ocupar un “espacio de la mochila” que dejará fuera otros objetos.
• bi: utilidad o beneficio que proporciona el objeto i-ésimo.
• C: capacidad de la mochila, equivale al presupuesto máximo del que se dispone. Tomamos C =
40.
Los valores del ejemplo sencillo que vamos a tratar los recogemos en la Tabla 1.
Los elementos a introducir en la mochila van a ser nuestras variables objeto de análisis, cada
variable la denotaremos como Xi . Se asignará el valor 1 si llevamos el objeto y con un 0 en el
caso contrario.
La restricción vendrá marcada por la capacidad máxima de la mochila, de tal forma que la suma
de todos los objetos multiplicados por el espacio que ocupan en la mochila no podrá exceder dicha
capacidad máxima. Matemáticamente:
Representamos a cada individuo con un cromosoma de 5 alelos, en el que el bit i hace referencia
al objeto i. Por ejemplo, supongamos que tenemos el genotipo de la Figura 5.1: significa que nos
llevaríamos los objetos 1, 3 y 5.
Donde:
¿Cuánto vale k? El tamaño de k puede variar en función de n. También habría que estudiar la no-
factibilidad en función de k: un k muy grande puede dar lugar a valores de salud negativos, lo
cual es absurdo. Esto se podría arreglar sumando una cota, pero podríamos entrar en problemas
de no-discriminación.
Representa el orden de las ciudades que debe seguir el agente para su recorrido. El tamaño de este
arreglo es el número de ciudades del problema. No puede existir una ciudad que se repita en el
recorrido.
La función de evaluación de cada cromosoma esta dado por la longitud del recorrido del mismo,
es decir que longitud recorre el agente si sigue el orden de las ciudades que están en el cromosoma.
El recorrido completo es de ir de la primera hasta la n-sima ciudad y regresar a la ciudad de
partida.
El tipo de Cruzamiento que se uso fue “Cruzamiento de un punto”:
Después del cruzamiento, los hijos tienen un problema, existe una ciudad que se repite: la ciudad
4 en el hijo 1 y la ciudad 7 en hijo 2.
Para resolver este problema, se hizo lo siguiente: la ciudad que se repite en la parte heredada del
padre 1, es reemplazada por alguna ciudad (no se encuentre en la parte de la ciudad a reemplazar)
de la parte que no es heredada del padre 2.
Para la mutación, se escoge aleatoriamente de la población (después del cruce) tantos individuos
como la probabilidad de mutación lo indique. Se uso el tipo de mutación “Order Chaining”, el
cual consiste en seleccionar aleatoriamente dos números (ciudades) y cambiarlos.
BIBLIOGRAFIA
Aldea, M. (09 de mayo de 2011). “Introducción a los Algoritmos Genéticos”. Obtenido de:
https://www.istr.unican.es/asignaturas/programacion2/apuntes/09_va_3en1.pdf
Rejas, E. (Julio de 2014) “Tesis: Diseño de un algoritmo de búsqueda Tabú para resolver el
problema de la selección de Proyectos”. Obtenido de:
http://tesis.pucp.edu.pe:8080/repositorio/bitstream/handle/123456789/5727/REJAS_ED
UARDO_ALGORITMO_BUSQUEDA_TABU_PROYECTOS.pdf?sequence=1