El documento trata sobre programación dinámica. Explica conceptos clave como etapas, estados, variables de decisión y subproblemas. Luego presenta el problema de la diligencia como un ejemplo de problema de programación dinámica, donde un vendedor debe elegir la ruta óptima entre varios estados. Finalmente, resume los cálculos paso a paso para encontrar la solución óptima a este problema dividiéndolo en subproblemas por etapas.
Este documento describe el algoritmo de programación dinámica. Explica que la programación dinámica evita calcular dos veces la misma información al almacenar resultados parciales. Luego, detalla que la programación dinámica se aplica a problemas de optimización que tienen subestructura óptima y superposición de subproblemas. Finalmente, provee un ejemplo de cómo usar programación dinámica para encontrar el camino más corto entre dos puntos.
Este documento presenta una introducción a la programación dinámica. Explica que la programación dinámica es una técnica algorítmica que se basa en una fórmula recurrente y uno o más estados iniciales. También describe que la programación dinámica es útil para resolver problemas de optimización que exhiben características de subproblemas superpuestos y subestructura óptima. Finalmente, el documento incluye varios ejemplos de cómo aplicar la programación dinámica.
Este documento presenta el problema de la diligencia como un ejemplo de programación dinámica. El objetivo es encontrar la ruta óptima para que una diligencia viaje entre las ciudades A y J minimizando el costo total de los seguros. La solución se encuentra resolviendo el problema en etapas, almacenando los costos mínimos de cada etapa para evitar cálculos redundantes. Esto conduce a la generación de tablas que muestran el costo óptimo para llegar a cada ciudad en cada etapa.
Este documento habla sobre programación dinámica. Explica qué es la programación dinámica, cómo construir un algoritmo usando esta estrategia, y cuándo usarla. Luego presenta algunos ejemplos clásicos de problemas resueltos con programación dinámica, como el problema de la asignación de vendedores y el problema del empaque. Finalmente, describe cómo resolver estos problemas usando programación dinámica a través de la identificación de conceptos como etapas, estados, transformaciones y resultados.
La programación dinámica es una técnica para resolver problemas de optimización dividiéndolos en subproblemas. Originalmente desarrollada por Richard Bellman en los 1940, involucra definir cada subproblema de forma recursiva en términos de las soluciones a subproblemas más pequeños. Esto permite almacenar las soluciones calculadas para evitar recalcular subproblemas repetidamente, resultando en algoritmos más eficientes que un enfoque de fuerza bruta.
Este documento presenta una introducción a la programación dinámica. Explica que la programación dinámica es un enfoque para resolver problemas de toma de decisiones en múltiples etapas mediante el análisis recursivo de cada etapa. Describe el principio de optimalidad de Bellman, que establece que la subsecuencia óptima de cualquier secuencia óptima también es óptima. Proporciona ejemplos como el problema del viajero de negocios y explica las diferencias entre programación dinámica y programación lineal.
Este documento presenta una introducción a la programación dinámica. Explica que la programación dinámica propone descomponer problemas grandes en subproblemas más pequeños. Define la programación dinámica como una técnica útil para tomar decisiones interrelacionadas de forma óptima. Finalmente, describe tres modelos de programación dinámica y ofrece ejemplos de cada uno: el problema de la diligencia, el problema de la mochila y la programación de producción e inventarios.
Este documento describe el algoritmo de programación dinámica. Explica que la programación dinámica evita calcular dos veces la misma información al almacenar resultados parciales. Luego, detalla que la programación dinámica se aplica a problemas de optimización que tienen subestructura óptima y superposición de subproblemas. Finalmente, provee un ejemplo de cómo usar programación dinámica para encontrar el camino más corto entre dos puntos.
Este documento presenta una introducción a la programación dinámica. Explica que la programación dinámica es una técnica algorítmica que se basa en una fórmula recurrente y uno o más estados iniciales. También describe que la programación dinámica es útil para resolver problemas de optimización que exhiben características de subproblemas superpuestos y subestructura óptima. Finalmente, el documento incluye varios ejemplos de cómo aplicar la programación dinámica.
Este documento presenta el problema de la diligencia como un ejemplo de programación dinámica. El objetivo es encontrar la ruta óptima para que una diligencia viaje entre las ciudades A y J minimizando el costo total de los seguros. La solución se encuentra resolviendo el problema en etapas, almacenando los costos mínimos de cada etapa para evitar cálculos redundantes. Esto conduce a la generación de tablas que muestran el costo óptimo para llegar a cada ciudad en cada etapa.
Este documento habla sobre programación dinámica. Explica qué es la programación dinámica, cómo construir un algoritmo usando esta estrategia, y cuándo usarla. Luego presenta algunos ejemplos clásicos de problemas resueltos con programación dinámica, como el problema de la asignación de vendedores y el problema del empaque. Finalmente, describe cómo resolver estos problemas usando programación dinámica a través de la identificación de conceptos como etapas, estados, transformaciones y resultados.
La programación dinámica es una técnica para resolver problemas de optimización dividiéndolos en subproblemas. Originalmente desarrollada por Richard Bellman en los 1940, involucra definir cada subproblema de forma recursiva en términos de las soluciones a subproblemas más pequeños. Esto permite almacenar las soluciones calculadas para evitar recalcular subproblemas repetidamente, resultando en algoritmos más eficientes que un enfoque de fuerza bruta.
Este documento presenta una introducción a la programación dinámica. Explica que la programación dinámica es un enfoque para resolver problemas de toma de decisiones en múltiples etapas mediante el análisis recursivo de cada etapa. Describe el principio de optimalidad de Bellman, que establece que la subsecuencia óptima de cualquier secuencia óptima también es óptima. Proporciona ejemplos como el problema del viajero de negocios y explica las diferencias entre programación dinámica y programación lineal.
Este documento presenta una introducción a la programación dinámica. Explica que la programación dinámica propone descomponer problemas grandes en subproblemas más pequeños. Define la programación dinámica como una técnica útil para tomar decisiones interrelacionadas de forma óptima. Finalmente, describe tres modelos de programación dinámica y ofrece ejemplos de cada uno: el problema de la diligencia, el problema de la mochila y la programación de producción e inventarios.
Este documento presenta un resumen sobre programación dinámica. Explica que esta técnica se aplica a problemas que presentan subproblemas óptimos y solapamiento entre subproblemas. También describe que usa un enfoque ascendente para primero calcular soluciones a subproblemas pequeños y luego usar esas soluciones para encontrar soluciones a problemas más grandes, evitando calcular subproblemas repetidos. Finalmente, provee algunos ejemplos de cómo se puede usar la programación dinámica.
El documento explica la técnica de programación dinámica, la cual divide un problema de optimización en etapas para encontrar la solución óptima de forma recursiva. Describe conceptos como estado, etapa y principio de optimalidad. También presenta ejemplos como el problema de la diligencia y el vendedor viajero para ilustrar cómo aplicar la técnica de forma práctica.
Este documento explica la técnica de programación dinámica. Se define como una técnica que resuelve problemas dividiéndolos en subproblemas solapados, almacenando las soluciones para evitar calcularlas repetidamente. Explica los pasos para aplicarla: caracterizar la estructura óptima, definir recursivamente la solución óptima, y construir la solución global de forma ascendente usando las soluciones parciales. Finalmente, concluye que se aplica a problemas con subproblemas simples y solapados cuya solución
Este documento describe la programación dinámica como un paradigma para diseñar algoritmos eficientes. Explica que la programación dinámica divide un problema complejo en subproblemas más pequeños, resuelve cada subproblema una sola vez y almacena las soluciones para reutilizarlas. Luego detalla el método, incluyendo ejemplos como la serie de Fibonacci y encontrar el camino de costo mínimo en un grafo. Finalmente, concluye que la programación dinámica es útil para problemas que pueden dividirse recursivamente pero puede ser menos eficiente que
Este documento describe el método de programación dinámica para resolver problemas de optimización que involucran decisiones secuenciales. La programación dinámica divide el problema en etapas, donde cada etapa tiene un número finito de estados posibles. Resuelve de manera recursiva los subproblemas de cada etapa para encontrar la solución óptima global al problema original en múltiples etapas.
La programación dinámica es una técnica para resolver problemas de optimización dividiéndolos en subproblemas. Resuelve cada subproblema una vez y almacena la solución para usarla en problemas mayores, evitando calcular lo mismo varias veces. Se aplica cuando los subproblemas óptimos definen la solución óptima general y hay solapamiento entre subproblemas.
El documento describe el método general de programación dinámica y dos ejemplos de su aplicación: el problema del cambio de monedas y el problema de la mochila 0/1. La programación dinámica resuelve problemas de optimización dividiéndolos en subproblemas más pequeños, almacenando las soluciones en tablas para evitar repeticiones y combinando dichas soluciones de forma ascendente.
Este documento presenta el problema de la diligencia como una introducción a la programación dinámica. El problema involucra a un vendedor que debe viajar de estado 1 a estado 10 a través de 4 etapas, eligiendo entre diferentes rutas en cada etapa. El objetivo es encontrar la ruta más segura, la cual es aquella con el costo más bajo de la póliza de seguro de vida debido a que los costos se basan en la seguridad de cada ruta. El documento procede a detallar los cálculos para cada etapa usando programación din
El documento describe la programación dinámica como una técnica matemática útil para resolver una serie de decisiones secuenciales donde cada decisión afecta las futuras. Explica que la programación dinámica divide un problema complejo en subproblemas más pequeños y los resuelve de manera recursiva, empezando por el último subproblema hasta llegar al primero. También presenta un ejemplo de cómo aplicar la técnica al problema de una diligencia que debe elegir la ruta más segura entre estados.
Este documento describe cómo resolver problemas de asignación de recursos utilizando programación dinámica. Explica que estos problemas involucran asignar una cantidad limitada de recursos entre varias actividades. La programación dinámica descompone el problema en etapas, calculando de forma recursiva la solución óptima para cada subproblema. También presenta un ejemplo numérico para ilustrar cómo aplicar este enfoque para maximizar los beneficios de invertir una cantidad fija de dinero en diferentes opciones.
Este manual presenta cinco unidades sobre temas de investigación de operaciones como programación dinámica, teoría de colas, teoría de decisión, cadenas de Markov y optimización de redes. Fue realizado por estudiantes de ingeniería industrial para el periodo de agosto a diciembre de 2008 en el Instituto Tecnológico de Cerro Azul, Veracruz.
La programación dinámica es una técnica para resolver problemas divididos en etapas que requieren tomar decisiones óptimas. Richard Bellman desarrolló originalmente esta técnica en los 1940 para encontrar las mejores decisiones entre etapas. La programación dinámica determinística tiene estados futuros determinados por los estados y decisiones actuales, mientras que la probabilística tiene estados futuros determinados por probabilidades.
La programación dinámica es una técnica matemática desarrollada en 1957 por Bellman y Dantzig para tomar decisiones secuenciales que maximicen la efectividad total. Se utiliza para problemas que pueden dividirse en etapas con estados asociados, donde cada etapa transforma el estado actual al siguiente. Resuelve el problema de forma recursiva, de atrás hacia adelante, encontrando la política óptima. Se aplica a problemas deterministas o aleatorios, homogéneos o no.
El documento presenta una introducción a la programación dinámica. Explica que es un método de optimización versátil para problemas de toma de decisiones en múltiples pasos. Describe que se basa en subproblemas superpuestos y subestructuras óptimas. Finalmente, menciona algunos ejemplos de problemas que se pueden resolver con programación dinámica como el problema del vendedor viajero y el problema de la diligencia.
Este documento presenta una introducción a los Procesos de Decisión de Markov (MDP) y el Aprendizaje por Refuerzo (RL). Explica que los MDP modelan problemas de toma de decisiones secuenciales bajo incertidumbre, donde un agente debe tomar acciones para maximizar una recompensa a largo plazo. Describe métodos básicos como la Programación Dinámica y el aprendizaje por refuerzo para resolver MDP, así como técnicas avanzadas para problemas más complejos. Finalmente, menciona algunas aplicaciones como control de
Este documento describe los conceptos fundamentales de la programación lineal y programación entera. La programación lineal busca optimizar un objetivo sujeto a restricciones lineales mediante variables continuas. La programación entera agrega la condición de que algunas variables deben ser enteros. Se explican métodos como simplex y ramificar y podar para resolver problemas lineales y enteros.
Este documento introduce el tema de la optimización dinámica. Explica que la optimización dinámica busca secuencias óptimas de acciones a lo largo del tiempo para maximizar o minimizar objetivos teniendo en cuenta restricciones y relaciones dinámicas entre variables. Analiza el problema de optimización dinámica en tiempo discreto y continuo usando un ejemplo de proceso productivo de cinco etapas. Finalmente, presenta tres métodos para resolver problemas de optimización dinámica: cálculo de variaciones, teoría del control óptimo
1.3.2 la programación lineal y su uso en la programación de operacionesHumbertoCarlosGalleg
El documento describe los métodos de planeación agregada de la producción, incluyendo métodos heurísticos y de optimización. Explica la estructura básica de un modelo matemático de programación lineal, el cual incluye variables de decisión, función objetivo, parámetros, restricciones y soluciones factibles/óptimas. También describe el método gráfico para resolver problemas de dos variables.
El documento presenta información sobre el tema de computación numérica impartido por el grupo COMPUTACIÓN 2DO ‘’B’’. Incluye los objetivos de la unidad y conceptos clave como la importancia del sistema decimal, integración numérica, regla de cuadratura, métodos de optimización como programación lineal, derivadas y transformación de funciones.
El documento describe los conceptos clave de la investigación de operaciones, incluyendo modelos matemáticos, programación lineal y métodos de optimización. La investigación de operaciones utiliza técnicas matemáticas para analizar problemas complejos y encontrar soluciones óptimas para mejorar el funcionamiento de sistemas. La programación lineal es un método para asignar recursos de manera óptima sujeto a restricciones lineales.
La programación dinámica es una estrategia para resolver problemas de optimización dividiéndolos en etapas. Se resuelve cada subproblema de forma independiente para minimizar el número de cálculos, empezando por una pequeña porción del problema original y ampliándolo gradualmente hasta resolverlo completamente. El principio de optimalidad establece que la política óptima para las etapas restantes depende solo del estado actual, independientemente de cómo se llegó a ese estado.
Presentación 10%
Evaluación - Programación No Numérica 2
José Manuel Dávila Durán
CI V-26.866.696
Instituto Universitario Politécnico Santiago Mariño
Sede Maracay
Este documento presenta un resumen sobre programación dinámica. Explica que esta técnica se aplica a problemas que presentan subproblemas óptimos y solapamiento entre subproblemas. También describe que usa un enfoque ascendente para primero calcular soluciones a subproblemas pequeños y luego usar esas soluciones para encontrar soluciones a problemas más grandes, evitando calcular subproblemas repetidos. Finalmente, provee algunos ejemplos de cómo se puede usar la programación dinámica.
El documento explica la técnica de programación dinámica, la cual divide un problema de optimización en etapas para encontrar la solución óptima de forma recursiva. Describe conceptos como estado, etapa y principio de optimalidad. También presenta ejemplos como el problema de la diligencia y el vendedor viajero para ilustrar cómo aplicar la técnica de forma práctica.
Este documento explica la técnica de programación dinámica. Se define como una técnica que resuelve problemas dividiéndolos en subproblemas solapados, almacenando las soluciones para evitar calcularlas repetidamente. Explica los pasos para aplicarla: caracterizar la estructura óptima, definir recursivamente la solución óptima, y construir la solución global de forma ascendente usando las soluciones parciales. Finalmente, concluye que se aplica a problemas con subproblemas simples y solapados cuya solución
Este documento describe la programación dinámica como un paradigma para diseñar algoritmos eficientes. Explica que la programación dinámica divide un problema complejo en subproblemas más pequeños, resuelve cada subproblema una sola vez y almacena las soluciones para reutilizarlas. Luego detalla el método, incluyendo ejemplos como la serie de Fibonacci y encontrar el camino de costo mínimo en un grafo. Finalmente, concluye que la programación dinámica es útil para problemas que pueden dividirse recursivamente pero puede ser menos eficiente que
Este documento describe el método de programación dinámica para resolver problemas de optimización que involucran decisiones secuenciales. La programación dinámica divide el problema en etapas, donde cada etapa tiene un número finito de estados posibles. Resuelve de manera recursiva los subproblemas de cada etapa para encontrar la solución óptima global al problema original en múltiples etapas.
La programación dinámica es una técnica para resolver problemas de optimización dividiéndolos en subproblemas. Resuelve cada subproblema una vez y almacena la solución para usarla en problemas mayores, evitando calcular lo mismo varias veces. Se aplica cuando los subproblemas óptimos definen la solución óptima general y hay solapamiento entre subproblemas.
El documento describe el método general de programación dinámica y dos ejemplos de su aplicación: el problema del cambio de monedas y el problema de la mochila 0/1. La programación dinámica resuelve problemas de optimización dividiéndolos en subproblemas más pequeños, almacenando las soluciones en tablas para evitar repeticiones y combinando dichas soluciones de forma ascendente.
Este documento presenta el problema de la diligencia como una introducción a la programación dinámica. El problema involucra a un vendedor que debe viajar de estado 1 a estado 10 a través de 4 etapas, eligiendo entre diferentes rutas en cada etapa. El objetivo es encontrar la ruta más segura, la cual es aquella con el costo más bajo de la póliza de seguro de vida debido a que los costos se basan en la seguridad de cada ruta. El documento procede a detallar los cálculos para cada etapa usando programación din
El documento describe la programación dinámica como una técnica matemática útil para resolver una serie de decisiones secuenciales donde cada decisión afecta las futuras. Explica que la programación dinámica divide un problema complejo en subproblemas más pequeños y los resuelve de manera recursiva, empezando por el último subproblema hasta llegar al primero. También presenta un ejemplo de cómo aplicar la técnica al problema de una diligencia que debe elegir la ruta más segura entre estados.
Este documento describe cómo resolver problemas de asignación de recursos utilizando programación dinámica. Explica que estos problemas involucran asignar una cantidad limitada de recursos entre varias actividades. La programación dinámica descompone el problema en etapas, calculando de forma recursiva la solución óptima para cada subproblema. También presenta un ejemplo numérico para ilustrar cómo aplicar este enfoque para maximizar los beneficios de invertir una cantidad fija de dinero en diferentes opciones.
Este manual presenta cinco unidades sobre temas de investigación de operaciones como programación dinámica, teoría de colas, teoría de decisión, cadenas de Markov y optimización de redes. Fue realizado por estudiantes de ingeniería industrial para el periodo de agosto a diciembre de 2008 en el Instituto Tecnológico de Cerro Azul, Veracruz.
La programación dinámica es una técnica para resolver problemas divididos en etapas que requieren tomar decisiones óptimas. Richard Bellman desarrolló originalmente esta técnica en los 1940 para encontrar las mejores decisiones entre etapas. La programación dinámica determinística tiene estados futuros determinados por los estados y decisiones actuales, mientras que la probabilística tiene estados futuros determinados por probabilidades.
La programación dinámica es una técnica matemática desarrollada en 1957 por Bellman y Dantzig para tomar decisiones secuenciales que maximicen la efectividad total. Se utiliza para problemas que pueden dividirse en etapas con estados asociados, donde cada etapa transforma el estado actual al siguiente. Resuelve el problema de forma recursiva, de atrás hacia adelante, encontrando la política óptima. Se aplica a problemas deterministas o aleatorios, homogéneos o no.
El documento presenta una introducción a la programación dinámica. Explica que es un método de optimización versátil para problemas de toma de decisiones en múltiples pasos. Describe que se basa en subproblemas superpuestos y subestructuras óptimas. Finalmente, menciona algunos ejemplos de problemas que se pueden resolver con programación dinámica como el problema del vendedor viajero y el problema de la diligencia.
Este documento presenta una introducción a los Procesos de Decisión de Markov (MDP) y el Aprendizaje por Refuerzo (RL). Explica que los MDP modelan problemas de toma de decisiones secuenciales bajo incertidumbre, donde un agente debe tomar acciones para maximizar una recompensa a largo plazo. Describe métodos básicos como la Programación Dinámica y el aprendizaje por refuerzo para resolver MDP, así como técnicas avanzadas para problemas más complejos. Finalmente, menciona algunas aplicaciones como control de
Este documento describe los conceptos fundamentales de la programación lineal y programación entera. La programación lineal busca optimizar un objetivo sujeto a restricciones lineales mediante variables continuas. La programación entera agrega la condición de que algunas variables deben ser enteros. Se explican métodos como simplex y ramificar y podar para resolver problemas lineales y enteros.
Este documento introduce el tema de la optimización dinámica. Explica que la optimización dinámica busca secuencias óptimas de acciones a lo largo del tiempo para maximizar o minimizar objetivos teniendo en cuenta restricciones y relaciones dinámicas entre variables. Analiza el problema de optimización dinámica en tiempo discreto y continuo usando un ejemplo de proceso productivo de cinco etapas. Finalmente, presenta tres métodos para resolver problemas de optimización dinámica: cálculo de variaciones, teoría del control óptimo
1.3.2 la programación lineal y su uso en la programación de operacionesHumbertoCarlosGalleg
El documento describe los métodos de planeación agregada de la producción, incluyendo métodos heurísticos y de optimización. Explica la estructura básica de un modelo matemático de programación lineal, el cual incluye variables de decisión, función objetivo, parámetros, restricciones y soluciones factibles/óptimas. También describe el método gráfico para resolver problemas de dos variables.
El documento presenta información sobre el tema de computación numérica impartido por el grupo COMPUTACIÓN 2DO ‘’B’’. Incluye los objetivos de la unidad y conceptos clave como la importancia del sistema decimal, integración numérica, regla de cuadratura, métodos de optimización como programación lineal, derivadas y transformación de funciones.
El documento describe los conceptos clave de la investigación de operaciones, incluyendo modelos matemáticos, programación lineal y métodos de optimización. La investigación de operaciones utiliza técnicas matemáticas para analizar problemas complejos y encontrar soluciones óptimas para mejorar el funcionamiento de sistemas. La programación lineal es un método para asignar recursos de manera óptima sujeto a restricciones lineales.
La programación dinámica es una estrategia para resolver problemas de optimización dividiéndolos en etapas. Se resuelve cada subproblema de forma independiente para minimizar el número de cálculos, empezando por una pequeña porción del problema original y ampliándolo gradualmente hasta resolverlo completamente. El principio de optimalidad establece que la política óptima para las etapas restantes depende solo del estado actual, independientemente de cómo se llegó a ese estado.
Presentación 10%
Evaluación - Programación No Numérica 2
José Manuel Dávila Durán
CI V-26.866.696
Instituto Universitario Politécnico Santiago Mariño
Sede Maracay
PROGRAMACIÓN DINÁMICA Oscar guarimata 27455059OscarGuarimata
Este documento presenta los conceptos y características de la programación dinámica. Explica que la programación dinámica es una técnica matemática que se utiliza para resolver problemas dividiéndolos en etapas secuenciales. Describe el principio de optimalidad y cómo la programación dinámica resuelve problemas mediante cálculos recursivos entre etapas para encontrar la solución óptima global. También incluye ejemplos como el problema de la diligencia para ilustrar el procedimiento de solución.
El documento describe los conceptos y métodos de la programación dinámica. Explica que la programación dinámica es una técnica matemática para resolver problemas mediante la descomposición en etapas y el uso de cálculos recursivos. Define las etapas y estados, y describe el principio de optimalidad y cómo se resuelven problemas mediante la formulación recursiva de etapas. También presenta un ejemplo prototipo de cómo aplicar la programación dinámica para encontrar la ruta más segura a través de territorios sin ley.
Este documento presenta los conceptos fundamentales de la programación dinámica. Explica que la programación dinámica divide un problema en subproblemas más pequeños y usa las soluciones óptimas de los subproblemas para encontrar la solución óptima del problema original. También define elementos clave como etapas, estados, política y subpolítica, y describe cómo la programación dinámica resuelve problemas de manera recursiva considerando cada etapa de manera secuencial.
Este documento trata sobre la programación dinámica. Explica que la programación dinámica es un método para resolver problemas dividiéndolos en subproblemas superpuestos y encontrando soluciones óptimas recursivamente. También describe algunos problemas como el problema de la diligencia y el problema del vendedor viajero que pueden resolverse usando programación dinámica.
Este documento describe la programación dinámica y varios problemas que pueden resolverse usando este método. Brevemente explica que la programación dinámica divide un problema complejo en subproblemas, almacena las soluciones de estos subproblemas y los usa de manera recursiva para resolver el problema original de manera óptima. Luego, detalla algunos problemas como el problema de la diligencia, el árbol binario de búsqueda óptimo y el problema del vendedor viajero, y cómo se pueden resolver usando programación dinámica.
La programación dinámica es una técnica para resolver problemas de optimización dividiéndolos en subproblemas. Resuelve cada subproblema una vez y almacena la solución para usarla en problemas mayores, evitando calcular lo mismo varias veces. Se aplica cuando los subproblemas se solapan y la solución óptima depende de soluciones óptimas de subproblemas más pequeños.
Este documento proporciona una introducción a la programación dinámica. Explica que la programación dinámica es una técnica matemática útil para resolver una serie de decisiones secuenciales donde cada decisión afecta las futuras. Luego describe las características de los problemas de programación dinámica y proporciona un ejemplo detallado llamado "el problema de la diligencia" para ilustrar cómo funciona la técnica.
El documento describe el algoritmo de programación dinámica. Se trata de una técnica que evita calcular dos veces la misma información al almacenar resultados parciales que contribuyen a la solución final. Se aplica a problemas de optimización que tienen subestructuras óptimas y superposición de subproblemas. Como ejemplo, explica cómo usar programación dinámica para encontrar el camino más corto entre dos puntos en una ciudad.
El documento habla sobre la programación dinámica. Explica que es una técnica cuantitativa de toma de decisiones secuenciales desarrollada en 1957 por Bellman y Dantzig. Se basa en que una política óptima consiste de subpolíticas óptimas. También presenta el problema de la diligencia como un ejemplo conceptual para ilustrar cómo funciona la programación dinámica al dividir el problema en etapas y encontrar la solución óptima de cada pequeña parte para resolver el problema completo de manera recursiva.
Este documento describe la técnica de programación dinámica y sus aplicaciones. Explica las características de los problemas de programación dinámica como dividirlos en etapas y estados. Usa el ejemplo del problema de la diligencia para ilustrar cómo la programación dinámica resuelve un problema dividiéndolo en subproblemas más pequeños de manera recursiva hasta llegar a la solución óptima global. También cubre aplicaciones deterministas como el tamaño de la fuerza laboral y la reposición de equipo, así como aplicaciones probabilísticas como
Este documento describe la técnica de programación dinámica y sus aplicaciones. Explica las características de los problemas de programación dinámica como dividirlos en etapas con estados asociados. Usa el ejemplo del problema de la diligencia para ilustrar cómo la programación dinámica resuelve un problema dividiéndolo en subproblemas más pequeños de manera recursiva hasta llegar a la solución óptima global. Finalmente, muestra cómo aplicar la técnica paso a paso al problema de la diligencia para encontrar la ruta con el costo mínimo
Este documento describe la técnica de programación dinámica y sus aplicaciones. Explica las características de los problemas de programación dinámica como dividirlos en etapas y estados. Usa el ejemplo del problema de la diligencia para ilustrar cómo la programación dinámica resuelve un problema dividiéndolo en subproblemas más pequeños de manera recursiva hasta alcanzar la solución óptima global. También cubre aplicaciones deterministas como el tamaño de la fuerza laboral y la reposición de equipo, así como aplicaciones probabilísticas como
El documento proporciona información sobre programación lineal, el método gráfico y el método simplex. Resume los conceptos clave de cada uno: 1) La programación lineal busca maximizar o minimizar una función lineal sujeto a restricciones lineales; 2) El método gráfico representa las restricciones geométricamente y encuentra la solución óptima observando la dirección en la que aumenta la función objetivo; 3) El método simplex es un procedimiento iterativo que mejora progresivamente la solución al cambiar las variables básicas hasta
El documento proporciona información sobre programación lineal, el método gráfico y el método simplex. Resume los conceptos clave de cada uno: 1) La programación lineal busca maximizar o minimizar una función lineal sujeto a restricciones lineales; 2) El método gráfico representa las restricciones geométricamente y encuentra la solución óptima observando la dirección en la que aumenta la función objetivo; 3) El método simplex es un procedimiento iterativo que mejora progresivamente la solución al cambiar las variables básicas hasta
El documento proporciona información sobre programación lineal, el método gráfico y el método simplex. Resume los conceptos clave de cada uno: 1) La programación lineal busca maximizar o minimizar una función lineal sujeto a restricciones lineales; 2) El método gráfico representa las restricciones geométricamente y encuentra la solución óptima observando la dirección en la que aumenta la función objetivo; 3) El método simplex es un procedimiento iterativo que mejora progresivamente la solución al cambiar las variables básicas hasta
El documento proporciona información sobre programación lineal, el método gráfico y el método simplex. Resume los conceptos clave de cada uno:
1) La programación lineal busca maximizar o minimizar una función lineal sujeto a restricciones lineales.
2) El método gráfico representa geométricamente las restricciones y solución óptima en un plano cuando hay dos variables.
3) El método simplex es un procedimiento iterativo que mejora progresivamente la solución a través de tablas de simplex hasta alcan
Este documento presenta los conceptos básicos de la programación dinámica. Explica que involucra tomar decisiones en etapas sucesivas donde las decisiones en una etapa afectan las futuras. Describe que los problemas se dividen en subproblemas más pequeños que se resuelven de forma recursiva comenzando por la última etapa hasta llegar a la primera para obtener la solución óptima del problema original. También cubre métodos para casos discretos y continuos.
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLMJuan Martín Martín
Examen de Selectividad de la EvAU de Geografía de junio de 2023 en Castilla La Mancha. UCLM . (Convocatoria ordinaria)
Más información en el Blog de Geografía de Juan Martín Martín
http://blogdegeografiadejuan.blogspot.com/
Este documento presenta un examen de geografía para el Acceso a la universidad (EVAU). Consta de cuatro secciones. La primera sección ofrece tres ejercicios prácticos sobre paisajes, mapas o hábitats. La segunda sección contiene preguntas teóricas sobre unidades de relieve, transporte o demografía. La tercera sección pide definir conceptos geográficos. La cuarta sección implica identificar elementos geográficos en un mapa. El examen evalúa conocimientos fundamentales de geografía.
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJEjecgjv
La Pedagogía Autogestionaria es un enfoque educativo que busca transformar la educación mediante la participación directa de estudiantes, profesores y padres en la gestión de todas las esferas de la vida escolar.
José Luis Jiménez Rodríguez
Junio 2024.
“La pedagogía es la metodología de la educación. Constituye una problemática de medios y fines, y en esa problemática estudia las situaciones educativas, las selecciona y luego organiza y asegura su explotación situacional”. Louis Not. 1993.
pueblos originarios de chile presentacion twinkl.pptx
Programacion
1. Republica Bolivariana de Venezuela
Ministerio del Poder Popular Para la Educación
Politécnico Universitario Santiago Mariño
Materia: Programación no Numérica II
Alumno:
Javier Velásquez
26.346.340
Barcelona, 08/07/2020.
2. Introducción
Contenido
•Programación Dinámica
•Estado y Etapa
•Esquema de una Etapa
•Formulación y Solución de Problemas
•Para Resolver Problemas de Programación Dinámica se
Necesita…
•Características de los Problemas de Programación
Dinámica
•Recursividad
•El Problema de la Diligencia
•Sistemas de Caminos y los Costos del Problema de la
Diligencia
•Arboles Binarios de Búsqueda Óptimos
•El Problema del Vendedor Viajero
Conclusión
Bibliografía
3. •En la programación se busca optimizar y buscar
alguna de las mejores soluciones de entre muchas
alternativas posibles. Este es una secuencia de
decisiones que nos permiten obtener una solución
correcta, y a su vez pueden ser subsecuencias de
decisiones.
•Dicho esto la programación dinámica se puede ver
como todo método que busca reducir el tiempo de
ejecución de cualquier algoritmo.
Introducción
4.
5. Que es?
• En informática, la programación dinámica es un
método para reducir el tiempo de ejecución de
un algoritmo mediante la utilización de subproblemas
superpuestos y subestructuras óptimas.
• Una sub estructura óptima significa que se pueden
usar soluciones óptimas de subproblemas para
encontrar la solución óptima del problema en su
conjunto. Por ejemplo, el camino más corto entre dos
vértices de un grafo se puede encontrar calculando
primero el camino más corto al objetivo desde todos
los vértices adyacentes al de partida, y después
usando estas soluciones para elegir el mejor camino
de todos ellos.
6. En general, se pueden resolver problemas con subestructuras óptimas
siguiendo estos tres pasos:
• Dividir el problema en subproblemas más pequeños.
• Resolver estos problemas de manera óptima usando este proceso de tres pasos recursivamente.
• Usar estas soluciones óptimas para construir una solución óptima al problema original.
En resumen, la programación hace uso de:
• Subproblemas superpuestos
• Subestructuras óptimas
• Memorización
La programación toma normalmente uno de los dos siguientes enfoques:
• Top-down: El problema se divide en subproblemas, y estos se resuelven recordando las soluciones
por si fueran necesarias nuevamente. Es una combinación de memorización y recursión.
• Bottom-up: Todos los problemas que puedan ser necesarios se resuelven de antemano y después
se usan para resolver las soluciones a problemas mayores. Este enfoque es ligeramente mejor en
consumo de espacio y llamadas a funciones, pero a veces resulta poco intuitivo encontrar todos
los subproblemas necesarios para resolver un problema dado.
7.
8. Elementos que intervienen en un
problema de programación dinámica:
ETAPAS:
•Se pueden definir
como cada uno
de los pasos que
se deben seguir
para llegar
al objetivo. Las
representamos
por líneas
discontinuas.
ESTADOS:
•Son las diversas
condiciones
posibles en la
que
el sistema podría
estar en esa
etapa del
problema. Se
representan por
círculos.
POLÍTICA:
•Es cualquiera de
los caminos que
llevan de la
primera a la
última etapa.
SUBPOLÍTICA:
•Es un
subconjunto de
la política.
9.
10. qi Variable de estado en la etapa i
xij Uno de los valores que puede
adoptar la variable de decisión xi en
la etapa i
Xi* Decisión optima de la etapa i
11.
12. Resolución: Debemos optimizar cada subproblema por etapas en función de los resultados de la resolución del subproblema
siguiente. Notar que para las recurrencias estén bien definidas requerimos de condiciones de borde.
Descripción de ecuaciones de recurrencia: Nos deben indicar como se acumula la función de beneficios a optimizar (función
objetivo) y como varían las funciones de estado de una etapa a otra
Muchos de los algoritmos de resolución de problemas lineales simples, son de origen exponencial por lo que resolver m cantidad
de problemas de un tamaño n es mas rápido que resolver un problema de tamaño m . N
Cada etapa debe tener asociado una o mas decisiones, cuya
dependencia de las decisiones anteriores esta dada
exclusivamente por las variables de estado.
Cada estado debe contener toda la información relevante
para la toma de decisión asociada al período.
Las variables de decisión son aquellas sobre las cuales
debemos definir su valor de modo de optimizar el beneficio
acumulado y modificar el estado de la próxima etapa.
Para resolver un problema de programación dinámica se debe:
Identificar las etapas, estados y variables de decisión
16. Características
Naturaleza secuencial de las
decisiones: El problema puede ser
dividido en etapas
Cada etapa tiene un numero de
estados asociados a ella.
La decisión óptima de cada etapa
depende solo del estado actual y
no de las decisiones anteriores.
La decisión tomada en una etapa
determina cual será el estado de
la etapa siguiente.
Para que un problema pueda ser
resuelto con la técnica de
programación dinámica, debe
cumplir con ciertas características:
17.
18. Programación
Dinámica
Existen dos formas de plantear
la fórmula de recursividad en
los problemas de programación
dinámica:
Recursividad de Retroceso: el
problema se resuelva partiendo
de la ultima etapa hacia la
primera
Recursividad de Avance: el
problema se resuelve partiendo
de la primera etapa hacia la
ultima.
Las formulaciones de avance y
retroceso son en realidad
equivalentes en términos de calculo.
Sin embargo, hay situaciones donde
habría alguna diferencia, en la
eficiencia del calculo, según la
formulación que se utilice. Esto
sucede en particular en problemas
donde interviene la toma de
decisiones conforme transcurre el
tiempo.
En este caso las etapas se
designan con base en el estricto
orden cronológico de los
periodos que ellas representan y
la eficiencia de los cálculos
dependerá de si se utiliza
formulación de avance o
retroceso.
19.
20. Este problema se refiere a un
vendedor mítico que tuvo que viajar
hacia el oeste por diligencia, a
través de tierras indias hostiles,
aproximadamente hace 125 años.
Aun cuando su punto de partida y
destino eran fijos, tenía un número
considerable de opciones para
elegir, qué estados recorrer en su
ruta.
•Los costos de la póliza
estándar para el viaje en
diligencia del estado i al j, el
cual se denotará Cij, es:
Seguros de Pólizas
21.
22. Los cálculos se realizan en etapas
dividiendo el problema en
subproblemas
Después, se considera por
separado cada subproblema con el
fin de reducir el numero de
operaciones de calculo.
Se comienza con una pequeña
porción del problema original y se
encuentra la solución optima.
Luego, se agranda gradualmente el
problema y se encuentra una
solución optima actual a partir de
la que le precede, hasta resolver el
problema original completo.
En cada problema aumentado se
puede encontrar la solución óptima
tomando en cuenta los resultados
obtenidos en la interacción
anterior.
Para este caso se empleara el
desarrollo del problema con un
recorrido hacia atrás.
Cuando el viajero tiene una sola
etapa por recorrer (n=4), su ruta de
ahí en adelante esta
perfectamente determinada por su
estado actual (ya sea H o I) y su
destino final, x4 = J, de manera que
la ruta para esta ultima jornada en
diligencias es s->J
La solución al problema es:
•F4 (H) = 3
•F4 (I) = 4
23. Cuando se tienen dos etapas por recorrer (n=3),
se analiza de la siguiente manera: Supóngase
que se encuentra en el estado F, entonces como
se ve en la figura, se debe ir al estado H ó al
estado I, a un costo de Cf,h=6 ó Cf,i=3. Si se elige
el estado H, el costo adicional mínimo al llegar
ahí es 3, por tanto el costo de decisión es 6+3=9,
de igual manera si se elige el estado I, el costo
total es 3+4=7 que es menor por lo tanto se
escogerá el estado l.
Se trabaja de manera similar con los otros
dos estados posibles s=E y s=G, cuando
quedan dos jornadas por viajar, los
resultados son:
•F3 ( E ) = 4
•F3 ( F ) = 7
•F3 ( G ) = 6
La solución para el problema de tres etapas
(n=2) se obtiene en forma parecida. Por
ejemplo supóngase que el agente se
encuentra en el estado C, como se
demuestra en el diagrama. Ahora deberá ir
al estado E, F o G con un costo inmediato
de Cc,e=3 o Cc,f=2 o Cc,g=4, respectivamente.
24. Al llegar aquí el costo
adicional mínimo hasta
llegar a su destino esta dado
de la siguiente manera:
x2 = E f2(C,E) = CC,E + f3( E ) = 3 + 4 = 7
x2 = F f2(C,F) = CC,F + f3( F ) = 2 + 7 = 9
x2 = G f2(C,G) = CC,G + f3( G ) = 4 + 6 = 10
El mínimo de estos tres
numero es 7, por lo que el
costo mínimo desde el
estado C al final es f2(C) = 7,
y el destino inmediato debe
ser x2 = E
Se realizan los cálculos
similares cuando se comienza
desde el estado B o D. Los
resultados son:
f2(B) = 11 f2(C) = 7 f2(D) = 8
25. Si se pasa al problema de cuatro
etapas (n=1), los cálculos son
parecidos a los que se acaban de
mostrar para el problema de tres
etapas (n=2), excepto que ahora
solo hay un inicio posible, S=A,
como se demuestra el diagrama
Los resultados se resumen de la
siguiente manera:
•X1 = B f1(A,B) = CA,B + f2(B) = 2 + 11
= 13
•X1 = C f1(A,C) = CA,C + f2(C) = 4 + 7 =
11
•X1 = D f1(A,D) = CA,D + f2(D) = 3 + 8 =
11
Como el mínimo de costo es 11,
por lo tanto los caminos pueden
ser C o D. En este punto se puede
identificar la solución óptima. Los
resultados indican los caminos
óptimos a seguir:
• A>D>E>H>J o A>D>F>I>J, las dos tienen
un costo total de 11
26.
27. Un árbol binario no es más que una estructura de datos cuyos nodos pueden tener un hijo a la izquierda o a la
derecha ( no más de 2). Por lo tanto un árbol binario de búsqueda no es más que un tipo de árbol binario cuya
estructura de árbol se representa en informática.
Árbol Binario
•Estos árboles pueden realizar operaciones de:
•Búsqueda: Consiste en acceder a la raíz del árbol, si el elemento a localizar coincide con éste la búsqueda ha concluido con éxito, si el elemento es menor se busca en el subárbol
izquierdo y si es mayor en el derecho. Si se alcanza un nodo hoja y el elemento no ha sido encontrado es que no existe en el árbol.
•Insertado: Se puede dar una solución tanto iterativa como recursiva. Si tenemos inicialmente como parámetro un árbol vacío se crea un nuevo nodo como único contenido el elemento a
insertar. Si no lo está, se comprueba si el elemento dado es menor que la raíz del árbol inicial con lo que se inserta en el subárbol izquierdo y si es mayor se inserta en el subárbol derecho.
•Borrado: esta operación es más compleja y hay que tener en cuenta a borrar un nodo hija o padre el impacto que tendrá en la estructura del mismo.
Si no vamos a modificar un árbol de búsqueda, y sabemos exactamente con qué frecuencia cada artículo
será accesible, podemos construir un árbol binario de búsqueda óptimo, que es un árbol de búsqueda donde
el coste medio de buscar un artículo (el esperado coste de búsqueda) se reduce al mínimo.
Árboles de búsqueda
binario óptimos
•Incluso si sólo tenemos estimaciones de los costos de búsqueda, este sistema puede acelerar considerablemente las búsquedas en promedio.
•Nosotros vamos a abordar la solución al mismo tanto mediante programación dinámica como con bottom-up.
A la hora de abordar el problema mediante programación dinámica, hay que tener en cuenta el principio de
optimización, y este nos dice que : Todos los subárboles de un árbol óptimo son
óptimos con respecto a las claves que contienen.”
ALGORITMOS
Programación dinámica
•De esta forma, abordaremos nuestro problema de la siguiente forma:
•Consideremos un subárbol óptimo que contenga las claves wi+1, wi+2, …, wj.
•Denotemos por Cij el número medio de comparaciones efectuadas en un subárbol
óptimo que contiene las claves wi+1, wi+2, …, wj
durante la búsqueda de una clave en el árbol principal (y convenimos en que Cii=0).
•Supongamos ahora que wk ocupa la raíz de ese subárbol.
•Sea el número medio de comparaciones efectuadas en ese subárbol durante la búsqueda de una clave en el árbol principal.
28.
29. El problema del Viajero
•El Problema del Vendedor Viajero (conocido también como Travelling Salesman
Problem o simplemente TSP) consiste en encontrar el circuito óptimo (en
términos del viaje más corto) que deberá seguir un vendedor en un caso con n
ciudades, en el que cada ciudad se visita exactamente una vez. Básicamente es
una adaptación del Problema de Asignación que considera restricciones
adicionales que garantiza la exclusión de subcircuitos en la solución óptima.
•Específicamente en el caso de n ciudades se define las variables de decisión de
la siguiente forma:
•Sea dij la distancia de la ciudad i a la ciudad j, donde dij = ∞, el modelo del agente
o vendedor viajero corresponde a:
30. El conjunto de restricciones (1) y (2) definen un modelo de
asignación tradicional. Lamentablemente en general, el
problema de asignación producirá soluciones de
subcircuito más que circuitos completos que abarque
las n ciudades.
•Para ilustrar los conceptos de circuito y subcircuito en el contexto del
Problema del Vendedor Viajero, consideremos un agente de venta que
vive en la ciudad 1. Miami (Florida) en Estados Unidos y debe visitar a
importantes clientes en las siguientes ciudades: 2. Chicago (Illinois), 3.
Houston (Texas), 4. Las Vegas (Nevada) y 5. San Francisco (California).
Para mayor claridad se han destacado los estados mencionados
anteriormente con un color distintivo.
Un circuito factible sería viajar en el siguiente orden:
Miami (FL), Chicago (IL), Houston (TX), Las Vegas (NV), San
Francisco (CA), Miami (FL). Es decir, x12 = x23 = x34 = x45
= x51 = 1.
•Por otra parte un subcircuito correspondería, por ejemplo, a Miami (FL),
San Francisco (CA), Las Vegas (NV), Miami (FL), junto a Houston (TX),
Chicago (IL), Houston (TX). Es decir, x15 = x54 = x41 = x32 = x23 = 1, lo
que naturalmente no es una solución factible para el problema que se
busca resolver.
El modelo del vendedor viajero se caracteriza por su
versatilidad para representar otros casos prácticos en
optimización. Uno de ellos es el Problema de
Secuenciamiento de la Producción como el que se
presenta a continuación:
El programa de producción diaria de una empresa de
pinturas incluye lotes de color Blanco (B), Amarillo
(A), Negro (N) y Rojo (R). Como la empresa utiliza las
mismas instalaciones en las cuatro clases de pintura, es
necesario hacer una limpieza entre los lotes. La siguiente
tabla resume el tiempo de limpieza, en minutos, donde al
color de la fila sigue el color de la columna. Por ejemplo,
cuando después de la pintura Blanca sigue la Amarilla, el
tiempo de limpieza en 10 minutos. Como un color no
puede seguir a sí mismo, a los elementos
correspondientes se les asigna un tiempo de setup
infinito. Se desea determinar la secuencia óptima para la
producción diaria de los cuatro colores, que minimice el
tiempo total de limpieza necesario.
31. Se puede hacer una analogía con el problema
del vendedor viajero, asumiendo que cada
pintura es una “ciudad” y que
las “distancias” representan el tiempo de
limpieza necesario para cambiar de un lote
de pintura al siguiente. En consecuencia, el
problema se reduce a determinar el circuito
más corto que se inicie en un lote de pintura y
pase exactamente una vez por cada uno de
los tres lotes restantes, para regresar al punto
de partida.
En este contexto dada la cantidad de
pinturas, la secuencia óptima se puede
encontrar por enumeración exhaustiva de los
6 circuitos posibles (n-1)! , es decir, (4-1)! = 3!
= 6 . En el ejemplo dicha secuencia óptima
corresponde a Blanco, Amarillo, Rojo, Negro,
Blanco, con un tiempo total de setup de 98
minutos. Naturalmente esta estrategia no es
eficiente y queda limitada a problemas muy
pequeños.
32. Alternativamente se puede utilizar implementar en Solver el modelo
de asignación presentado anteriormente, haciendo uso de los
parámetros descritos en el ejemplo del secuenciamiento de la
producción de pinturas. A continuación un extracto de los resultados
donde se observa que no se alcanza una solución de circuito.
En la actualidad existen programas computacionales que permiten
enfrentar estas dificultades que establece el problema del vendedor
viajero. Uno de ellos es el software TSPSG (TSP Solver and Generator)
que se caracteriza por una interfaz intuitiva y que a continuación se
detalla la implementación de nuestro problema (recordar que la
Ciudad 1 correspondería al color Blanco, y así sucesivamente).
Una vez ingresado los datos al seleccionar “Solve” el programa se
ejecuta entregando los resultados alcanzados que por cierto coincide
con aquellos que identificamos por enumeración.
33. •Dando uso a la programación dinámica, el
algoritmo se vuelve bastante eficiente, es
importante saber cuando usar las técnicas bottom-
up o top-down, ya que esto puede ayudar a reducir
la mitad del tiempo para resolver un problema en la
menor cantidad de iteraciones posibles.
•Aporta mayor entendimiento a la hora de resolver
los problemas dividiendo las etapas de un problema
y resolver uno por uno.
Conclusión
34. •Programación Dinámica. Runestone. Link:
https://runestone.academy/runestone/static/pythoned/Recursion/ProgramacionDinamica.html
•Programación Dinámica. Monografías. Link: https://www.monografias.com/trabajos104/la-programacion-
dinamica/la-programacion-dinamica.shtml
•Idalia F. Programación Dinámica Link:
https://www.ingenieria.unam.mx/sistemas/PDF/Avisos/Seminarios/S.eminarioV/Sesion6_IdaliaFlores_20abr15.pdf
•Wordpress. Problema de la Diligencia. 2011. Link: https://albertoindustrial.wordpress.com/2011/10/06/problema-
de-la-diligencia/
•Bertsekas, D.P. ‘‘Dynamic Programing; Deterministic and Stochastic Models’’ Academic Press, 1987.
•Dreyfus S.E. y Law A.M. ‘‘The Art and Theory of Dynamic Programming’’, Academic Press, 1977.
•Hiller F.S. ‘‘Introducción a la Investigación de Operaciones’’. 2008
•Taha, H.A. ‘‘Investigación de Operaciones’’. 2005
•Wikipedia. Árbol Binario de Busqueda. Link:
https://es.wikipedia.org/wiki/%C3%81rbol_binario_de_b%C3%BAsqueda
•Gestióndeoperaciones. Problema del Vendedor. Link: https://www.gestiondeoperaciones.net/programacion-
entera/solucion-del-problema-del-vendedor-
viajero/#:~:text=El%20Problema%20del%20Vendedor%20Viajero,se%20visita%20exactamente%20una%20vez.
Fuentes de Información