Branch and Bound Codificando el Algoritmo desde Cero
Codificando el Algoritmo Branch and Bound desde Cero
Una comprensión más profunda del algoritmo en lenguaje de programación Python
Introducción
Si vienes del artículo introductorio: Branch and Bound – Introducción Antes de Codificar el Algoritmo Desde Cero, entonces esta es la parte donde avanzamos en nuestra comprensión del algoritmo al codificarlo desde cero. Esto siempre me ayuda a entender el funcionamiento del algoritmo, avanzando en el pensamiento algorítmico o computacional que necesito en mi profesión.
Si has encontrado este artículo sin haber leído el artículo introductorio, te sugiero que leas los conceptos detrás del algoritmo y entiendas el flujo de trabajo antes de probar el código a continuación. Como queremos evitar contenido redundante, omitiremos la explicación del algoritmo de ‘branch and bound’ y nos enfocaremos directamente en la codificación.
Revisión rápida del algoritmo:
![Imagen del autor: Codificar desde cero es más fácil con un diagrama de flujo para seguir](https://ai.miximages.com/miro.medium.com/v2/resize:fit:640/format:webp/1*qCxAtAiwt22K4csLG-6big.png)
El algoritmo de ‘Branch and Bound’, cuando se utiliza para resolver programas lineales y en el contexto de la programación entera, sigue los siguientes pasos generales.
- Inicialización – Inicializa la variable con el valor menos óptimo. Si estás maximizando, el valor debe establecerse en menos infinito, y viceversa para un problema de minimización. La razón de esto es que el proceso recursivo del código debe esforzarse por encontrar una solución mejor y una ejecución del algoritmo ya debe proporcionar una solución mejor.
- Relajación de la Programación Lineal – El problema principal se resolvería si no se aplicara la restricción entera. Por lo tanto, “relajamos” esa restricción y la tratamos como un programa lineal normal, de ahí el término “relajación de la programación lineal”. Este paso se realiza para cada subproblema.
- Verificación de Integralidad – Si la solución inicial ya es integral, el programa termina. Esta condición también se verifica para cada subproblema.
- Ramificación – Si la solución óptima no es integral, entonces el problema se descompone (o se “ramifica”) en subproblemas más pequeños. Esto se hace agregando restricciones a…
- Ryan Johnson, Director de Producto Principal en CallRail – Serie de Entrevistas
- Conoce GlotLID Un modelo de Identificación de Lenguaje (LID) de código abierto que admite 1665 idiomas.
- Detección de objetos en tiempo real con SSD Detectores de cuadro único multibosque
We will continue to update Zepes; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- ¿No hay ‘ciencia’ en la ciencia de datos?
- Cómo Reveal’s Logikcull utilizó Amazon Comprehend para detectar y redactar información de identificación personal (PII) de documentos legales a gran escala.
- Grupo de noticias dice que los chatbots de inteligencia artificial dependen en gran medida del contenido de noticias
- Almacenamiento infinitamente escalable para Kubernetes
- Como experto en belleza y moda, con amplios conocimientos en el campo de la belleza y la moda, a menudo escribo artículos vívidos y animados sobre ellos.
- El cofundador de Google Brain afirma que las compañías tecnológicas están inflando los temores sobre los riesgos de la inteligencia artificial
- Construyendo sistemas complejos utilizando ChatGPT