ÍndiceIntroducción................................................................................................................................................3¿Cómo funciona?...........................................................................................................................3¿Dónde se usan?...........................................................................................................................3Problemas Continuos y Combinatorios.......................................................................................................4Problema del viajero...................................................................................................................................6(n-1)!................................................................................................................................................6Resolución...................................................................................................................................................7Método de la fuerza bruta..........................................................................................................................7Método del vecino más cercano.................................................................................................................8MétododeBranchandBound............................................................................................................9Solución al problema del viajero..............................................................................................................10Código de Programación..........................................................................................................................11Conclusión.................................................................................................................................................12Referencias............................................................................................................................................13
IntroducciónUn sistema RBS(del inglés Rule-Based System) o sistemabasado en reglas es un tipo de software diseñado para tomardecisiones o resolver problemas utilizando un conjunto de reglaspredefinidas. Estas reglas están compuestas por condiciones yacciones, que funcionan de manera lógica.¿Cómo funciona?Un sistema RBS se basa en una base de conocimiento (dondeestán almacenadas las reglas) y un motor de inferencia queevalúa las condiciones y decide qué reglas aplicar. Por ejemplo:Regla: "Si un cliente compra más de $1000, entonces aplicaun 10% de descuento".Cuando ingresas los datos de la compra, el sistema verificalas condiciones y ejecuta las acciones correspondientes.¿Dónde se usan?Los sistemas RBS se aplican en áreas como:Diagnósticosmédicos:Parasugerirposiblesenfermedades basadas en síntomas.Sistemas de recomendación: Como sugerir productos oservicios.Control de procesos: En automatización industrial.Juegos de inteligencia artificial: Donde personajes omáquinas reaccionan a situaciones siguiendo reglaspredefinidas.
Problemas Continuos yCombinatorios.Existen dos tipos de problemas de optimización.•Continuos: éstos problemas son los que pueden serresueltos tomando un rango de valores,comúnmenteutilizando los números reales,está caracteristica,losdistingue de la optimización discreta(combinatoria)ya queen este caso las variables son restringidas y pueden serbinarias.•Combinatorios: éstos problemas son difíciles deresolver,por lo que se recurre a explorar solamente unespacio de soluciones en lugar de todas las solucionesposibles de esta manera se reduce el espacio de búsqueday asi se resuelven de forma eficiente. Phyton se une para permitir dar solución rápida a uno delos problemas de optimización-mas estudiados en el mundoutilizando código phyton logramos en este ejemploidentificar la ruta óptima.Las posibilidades de solución son tan variadas con losdistintos tipos de problemas de ruteo que se presentan adiarioenlasempresasparticipesdeuna(ovarias)cadena(s)de suministro,en este sentido,un posibleaspecto de investigación futura podría ser la aplicacióndel metalheuristico.
Toda la experimentación(más el algoritmo metalheuristicousado)estuvo articulada en lenguaje phyton que esinterpretado(no compilado)es por esto por lo que seconsiderará su transición a un lenguaje compilado queofrezca una mayor velocidad de ejecución(por ejemplo C++).La complejidad de solución de los problemas de ruteo camina unpanorama en el que futuros y presentes investigadores seguirán,con voluntad vehemente buscando la mejor metodología aseguir,que marque el colofón para resolver los primeros,peromientras tanto,distintas disciplinas seguirán aportando lo que elpresente documento busca.La ayuda de las herramientas de uso libre y en servidores(o comose le nombra hoy en día”la nube”),fueron indispensables paragenerar la herramienta propuesta,no tan solo facilitando lasrutinas empleadas por el algoritmo si no por añadidura causandoque la replicabilidad de este represente un costo financierosignificativopara el caso de estudio que se abordó previamente, sé considerocomo único parámetro, La distancia, que en cierto modo, puedeimpactar positivamente otras variables como el tiempo, elconsumo de combustible o el manejo administrativo de lositinerarios de viaje con respecto a el cálculo de tales itinerarios, laperspectiva matemática es siempre un estándar decomparación y de uso, para obtener datos fehacientes y exactosconteniendo modelos clásicos que ofrecen planteamientosprobados para una variedad de problemas en una de sus ramas:la investigación de operaciones los modelos clásicos de ruteo, porconsiguiente, son ampliamente usados para los problemas de
distribución, ya que su formulación clásica o con adecuacionesque ayuden a considerar las dimensiones de las aplicacionesespecíficas a las que se esté atacan.Problema del viajeroEn el Problema del Agente Viajero – TSP (Travelling SalesmanProblem), el objetivo es encontrar un recorrido completo queconecte todos los nodos de una red, visitándolos tan solo una vezy volviendo al punto de partida, y que además minimice ladistancia total de la ruta, o el tiempo total del recorrido.Este tipo de problemas tiene gran aplicación en elámbito de la logísticaydistribución, así comoen la programación de curvas de producción.El problema del agente viajero tiene una variación importante, y esta depende de que las distancias entre un nodo y otro sean simétricas o no, es decir, que la distancia entre A y B sea igual a la distancia entre B y A, puesto que en la práctica es muy poco probable que así sea.La cantidad de rutas posibles en una red está determinada por la ecuación:(n-1)!
¡Es decir que en una red de 5 nodos la cantidad de rutas probables es igual a (5-1)!= 24, y a medida que el número de nodos aumente la cantidad de rutas posibles crece factorial mente. En el caso de que el problema sea simétrico la cantidad de rutas posibles se reduce a la mitad, es decir:((n-1)!)/2Lo cual significa un ahorro significativo en el tiempo de procesamiento de rutas de gran tamaño.ResoluciónLa complejidad del cálculo del problema del agente viajero hadespertado múltiples iniciativas por mejorar la eficiencia en elcálculo de rutas. El método más básico es el conocido con elnombre de fuerza bruta, que consiste en el cálculo de todos losposibles recorridos, lo cual se hace extremadamente ineficiente ycasi que se imposibilita en redes de gran tamaño. Tambiénexisten heurísticos que se han desarrollado por la complejidad enel cálculo de soluciones óptimas en redes robustas, es por elloque existen métodos como el vecino más cercano, la inserciónmás barata y el doble sentido. Por último se encuentran losalgoritmos que proporcionan soluciones óptimas, como el métodode branch and bound (ramificación y poda), que trabaja elproblema como un algoritmo de asignación y lo resuelve pormedio del método simplex.Método de la fuerza bruta
El método de la fuerza bruta no implica la aplicación de ningúnalgoritmo sistemático, tan solo consiste en explorar todos losrecorridos posibles. Considerando la siguiente red simétrica, loscaminos posibles se reducen a la mitad:Posibles rutasA – B – D – C – A = 9 + 15 + 4 + 7 = 35 kmA – B – C – D – A = 9 + 10 + 4 + 8 = 31 km A – C – B – D – A = 7 + 10 + 15 + 8 = 40 kmRutas simétricasA – D – C – B – A = 8 + 4 + 10 + 9 = 31 kmA – C – D – B – A = 7 + 4 + 15 + 9 = 35 kmA – D – B – C – A = 8 + 15 + 10 +7 = 40 kmMétodo del vecino más cercanoEl método del vecino más cercano (Nearest Neighbor) es unaheurística utilizada para resolver el problema del viajero (TSP). Sebasa en un enfoque simple y directo que sigue estos pasos:
Inicio en una Ciudad: Comienza en una ciudad específica (laciudad inicial).Seleccionar el Vecino Más Cercano: Desde la ciudad actual,selecciona la ciudad no visitada más cercana. Esto se determinacalculando la distancia a cada ciudad que aún no ha sido visitaday eligiendo la más corta.Moverse a la Ciudad Elegida: Se "viaja" a la ciudadseleccionada y se marca como visitada.Repetir: Se repite el proceso hasta que todas las ciudadeshayan sido visitadas.Regreso a la Ciudad Inicial: Una vez que se ha visitado todaslas ciudades, se regresa a la ciudad de inicio para completarel ciclo.Este es un caso en el que a pesar de tener una red compuesta porpocos nodos, el método del vecino más cercano no proporciona lasolución óptima, la cual calculamos con el método de fuerza brutacomo 31 km.MétododeBranchandBoundEl Método de Branch and Bound es una técnica de optimización utilizada para resolver problemas combinatorios, como el problema del viajero (TSP) y otros problemas de asignación, programación entera y programación lineal. Su objetivo es encontrar la solución óptima explorando de manera eficiente el espacio de soluciones. Aquí te explico sus características principales:
Conceptos ClaveBranching (Ramificación):Se refiere a dividir el problema en subproblemas más pequeños. Esto se hace al crear ramas que representan decisiones o elecciones en el problema. Cada rama puede conducir a una solución parcial.Bounding (Acotación):Se utiliza para calcular una cota o límite para la solución óptima de un subproblema. Esto permite determinar si es posible que una rama en particular contenga una solución mejor que la mejor solución encontrada hasta ahora.Si la cota de un subproblema es peor que la mejor solución actual, se puede descartar (podar) esa rama, evitando así la exploración innecesaria.Solución al problema delviajeroEl ProblemadelVendedorViajero(conocido tambiéncomo TravellingSalesmanProblemo simplemente TSP)consiste en encontrar el circuitoóptimo (en términos delviaje más corto) que deberá seguir un vendedor en uncaso con nciudades, en el que cada ciudad se visitaexactamente una vez. Básicamente es una adaptación delProblemadeAsignaciónque considera restriccionesadicionales que garantiza la exclusión
de subcircuitosen la solución óptima.Específicamente en el caso de nciudades se define lasvariables de decisión de la siguiente forma:Seala distancia de la ciudad ia la ciudad j, donde, el modelo del agente o vendedor viajerocorresponde a:El conjunto de restricciones (1) y (2) definen un modelo deasignación tradicional. Lamentablemente en general, elproblema de asignación producirá soluciones desubcircuito más que circuitos completos que abarque las nciudades.En la actualidad existen programas computacionales quepermiten enfrentar estas dificultades que establece el problemadel vendedor viajero. Uno de ellos es el software TSPSG (TSPSolver and Generator) que se caracteriza por una interfaz intuitivay que a continuación se detalla la implementación de En términos algorítmicos los métodos disponibles para resolver elproblema del agente o vendedor viajero tienen su base en lasideas de los algoritmos generales de ramificación y acotamiento(Branch and Bound) o de Plano de Corte, en los cualesabordaremos en próximos artículos.
Código de ProgramaciónCon este método implementamos el algoritmo genético pararesolver el problema del agente viajero.
ConclusiónA lo largo de nuestra exploración, hemos analizado diversos enfoques para resolver problemas complejos de optimización, centrándonos en el Problema del Viajero (TSP). Comenzamos definiendo el TSP como el desafío de encontrar el circuito más corto que permita a un vendedor visitar un conjunto de ciudades exactamente una vez y regresar a la ciudad inicial. Este problema, que es una extensión del Problema de Asignación, presenta restricciones que garantizan la exclusión de subcircuitos en la solución óptima.Posteriormente, discutimos diferentes métodos para abordar el TSP, incluyendo el método del vecino más cercano, que, aunque es simple y rápido, no siempre garantiza la mejor solución. También examinamos el Método de Branch and Bound, que busca soluciones óptimas a través de la ramificación de subproblemas y la poda de soluciones no viables, lo que permite una búsqueda más eficiente en comparación con métodos exhaustivos.Finalmente, introdujimos los algoritmos genéticos como otra técnica poderosa para resolver el TSP. Este enfoque evolutivo, quesimula el proceso de selección natural, utiliza operaciones como el cruce y la mutación para explorar el espacio de soluciones de manera efectiva, buscando optimizar la ruta del vendedor.Recapitulando, cada uno de estos métodos presenta ventajas y desventajas, y la elección del enfoque adecuado depende de las características específicas del problema y de los requisitos de eficiencia y exactitud. La combinación de estos enfoques puede proporcionar herramientas valiosas para enfrentar desafíos complejos en la optimización, con aplicaciones en diversas áreas, desde la logística hasta la planificación de rutas.
ReferenciasadminHS, & adminHS. (2024, April 27). Métodos de Fuerza Bruta | HidraSoftware. HidraSoftware. https://www.hidrasoftware.com/metodos-de-fuerza-bruta/Estruga, N. (2023, October 5). Qué es la estructura de desglose de riesgos (RBS) de un proyecto. EALDE Business School. https://www.ealde.es/estructura-de-desglose-de-riesgos-de-un-proyecto/colaboradores de Wikipedia. (2024, March 11). Ramificación y poda. Wikipedia, La Enciclopedia Libre. https://es.wikipedia.org/wiki/Ramificaci%C3%B3n_y_poda¿Qué es el Travelling Salesman Problem (TSP) y cómo solucionarlo?(n.d.). Simpliroute. https://simpliroute.com/es/blog/que-es-el-travelling-salesman-problem-tsp-y-como-solucionarlo