Así que recientemente me he sentido realmente fascinado con los algoritmos en general. Y recientemente implementé un algoritmo de optimización de colonias de hormigas para resolver el TSP (muy divertido, obviamente). Ahora he estado buscando otros "problemas" para resolver. Ahora quería implementar un algoritmo para resolver un problema que implique cumplir un requisito de porcentaje y estar por debajo de un límite arbitrario.Optimización de Colonia de Hormigas o Algoritmo Genético para el problema basado en porcentaje
Por ejemplo:
de entrada del usuario:
1) limitar -i.e. cantidad de energía disponible para gastar.
2) "cromosoma" tipos -i.e. azul (subtipos - índigo, etc.), rojo (subtipos - granate, etc.), amarillo (subtipos - amarillo claro, etc.) - cada atributo principal como azul tiene un "grupo" para elegir que consiste en diferentes subtipos como índigo, azul claro, azul marino lo que sea. : cada uno de los subtipos de color tiene un costo variable asociado.
3) porcentaje de tipos necesarios para la solución "ideal" (puede introducir un +/-% para permitir más variedad). -i.e. 10% rojo, 30% azul, 60% amarillo.
Salida:
1) posibles soluciones finales que cumplen los dos requisitos, siendo a continuación - pero cerca de la - coste requerido y el cumplimiento de los requisitos de porcentaje de supertipos.
Así, por ejemplo.
Este es un ejemplo super simple, obviamente sería más complejo que esto en realidad.
usuario especifica coste debe ser como sigue = costo < = 105.
El usuario elige el 25% de azul, 25% de amarillo, 50% de rojo. con +/- 5% de desviación
piscinas disponibles para cada color
Azul: Indigo: coste = 25; Azul marino: costo = 30; Azul marino: costo = 75;
Amarillo: Amarillo claro: costo = 20; Amarillo oscuro: costo = 30; Súper amarillo oscuro (lol): costo = 75;
Rojo: Maroon: costo = 20; Rojo sangre: costo = 45; Rojo brillante: costo = 55;
Para que el algoritmo funcione y devuelva diferentes combinaciones.
Combinación 1: índigo, amarillo oscuro, rojo sangre: costo = 100: azul = 25%, amarillo = 30%, rojo = 55%.
Combinación 2: mar azul, amarillo claro, de color rojo sangre: coste = 105: azul = ~ 30%, amarillo = ~ 20%, rojo = ~ 50%
Combinación 3: así sucesivamente y así sucesivamente.
EDIT: Segunda edición
salida consistiría en conjuntos de diferentes combinaciones.
Por ejemplo, un soluciones podrían consistir en combinaciones como:
Una solución estaría representado por la siguiente:
Combinación 1: Costo = 20; 50% azul, 25% amarillo, 25% rojo;
Combinación 2: costo = 30; 10% azul, 50% amarillo, 40% rojo;
Combinación 3: costo = 50; 25% azul, 25% amarillo, 50% rojo;
Solución: = (combinación 1, combinación 2, combinación 3) costo total = 100, y consiste en x% azul, y% amarillo, z% rojo;
compare la solución a los requisitos, si es así, consérvela, si no la deseche.
FIN EDITAR
Así que mi pregunta es. Sé que un algoritmo genético funcionaría. Pero, ¿funcionaría una implementación de ACO también? Por ejemplo, azul, amarillo y rojo equivaldrían a "ubicaciones", entonces sus subtipos representarían diferentes "caminos".
Solo me pregunto qué podría ser una solución más eficiente o tal vez algún algoritmo diferente por completo. Soy bastante nuevo en esto y comencé a leer sobre él hace poco más de una semana.
EDIT: Primera edición
quiero especificar que quiero tener 5 buenas soluciones únicas (5 siendo un número arbitrario, podría ser 3, podría ser 20).
Para su problema de color, cualquier algoritmo de optimización lineal lo hará (por ejemplo, simplex, punto interior, ...) –
Puedo sugerir otro problema interesante para resolver con ACO: nivelación de recursos (a veces llamado CRSP). Similar a TSP. P.ej. Dado un equipo de desarrollo de software y un plan de trabajo donde las tareas dependen una de la otra para completarse y cada tarea se asigna a una persona específica, encuentre el programa que hace que el proyecto finalice antes. –
Me acabo de dar cuenta de que hice una pregunta incorrecta a mi pregunta para indicar que la solución candidata es un conjunto de combinaciones que cumplen los requisitos iniciales. – Odnxe