Unidad 3 - Aplicando casos especificos
Resolución de Problemas de Transporte y Asignación
Google Colab:
https://colab.research.google.com/drive/1x2J2VTcmSpXwClgZbG-Krd7UBoxsCsLp?usp=sharing
El propósito de esta actividad es que el estudiante demuestre su capacidad para plantear y resolver problemas de asignación y transporte utilizando modelos matemáticos de programación entera. A continuación, se detallan los criterios de desempeño a aprender, orientaciones y recursos necesarios para cumplir con estos objetivos, junto con ejemplos prácticos para una mejor comprensión.
Plantear modelos de problemas de transporte y asignación
Modelos de Transporte
Objetivo: Minimizar los costos de transporte entre orígenes y destinos, respetando las restricciones de capacidad y demanda.
Ejemplo: Una empresa debe transportar productos desde tres fábricas a cuatro almacenes. Se conocen los costos de transporte, la capacidad de cada fábrica y la demanda de cada almacén.
Pasos para Plantear el Modelo:Definir las variables de decisión:
𝑥𝑖𝑗=Cantidad de productos transportados desde la faˊbrica 𝑖 al almaceˊn 𝑗xij=Cantidad de productos transportados desde la faˊbrica i al almaceˊn j
Formular la función objetivo:
Minimizar 𝑍=∑𝑖=13∑𝑗=14𝑐𝑖𝑗𝑥𝑖𝑗Minimizar Z=i=1∑3j=1∑4cijxij
Establecer las restricciones:Capacidad de las fábricas:
∑𝑗=14𝑥𝑖𝑗≤Capacidad de la faˊbrica 𝑖j=1∑4xij≤Capacidad de la faˊbrica i
Demanda de los almacenes:
∑𝑖=13𝑥𝑖𝑗=Demanda del almaceˊn 𝑗i=1∑3xij=Demanda del almaceˊn j
Modelos de Asignación
Objetivo: Asignar recursos (como empleados o máquinas) a tareas específicas, minimizando el costo o maximizando la eficiencia.
Ejemplo: Asignar 5 empleados a 5 tareas, con diferentes costos asociados a cada asignación.
Pasos para Plantear el Modelo:Definir las variables de decisión:
𝑥𝑖𝑗={1si la tarea 𝑖 es asignada al empleado 𝑗0en caso contrarioxij={10si la tarea i es asignada al empleado jen caso contrario
Formular la función objetivo:
Minimizar 𝑍=∑𝑖=15∑𝑗=15𝑐𝑖𝑗𝑥𝑖𝑗Minimizar Z=i=1∑5j=1∑5cijxij
Establecer las restricciones:Cada tarea debe ser asignada a un empleado:
∑𝑗=15𝑥𝑖𝑗=1∀𝑖j=1∑5xij=1∀i
Cada empleado debe realizar solo una tarea:
∑𝑖=15𝑥𝑖𝑗=1∀𝑗i=1∑5xij=1∀j
Resolución de Modelos de Transporte
Para resolver un modelo de transporte, se pueden utilizar métodos como el método de la esquina noroeste, el método de costo mínimo o el método de aproximación de Vogel. Utilizando software como Excel Solver, LINGO o herramientas de programación como Python con la biblioteca PuLP, podemos encontrar la solución óptima.
Ejemplo Resuelto en Excel Solver:Ingresar los datos del problema:Costos de transporte, capacidades y demandas.
Configurar Solver:Definir la función objetivo, las variables de decisión y las restricciones.
Ejecutar Solver y analizar los resultados:Verificar que se cumplan todas las restricciones y que se minimice el costo total.
Resolución de Modelos de Asignación
Asi se veria un codigo de ejercicio:
El propósito de esta actividad es que el estudiante demuestre su capacidad para plantear y resolver problemas de asignación y transporte utilizando modelos matemáticos de programación entera. A continuación, se detallan los criterios de desempeño a aprender, orientaciones y recursos necesarios para cumplir con estos objetivos, junto con ejemplos prácticos para una mejor comprensión.
Plantear modelos de problemas de transporte y asignación
Modelos de Transporte
Objetivo: Minimizar los costos de transporte entre orígenes y destinos, respetando las restricciones de capacidad y demanda.
Ejemplo: Una empresa debe transportar productos desde tres fábricas a cuatro almacenes. Se conocen los costos de transporte, la capacidad de cada fábrica y la demanda de cada almacén.
Pasos para Plantear el Modelo:Definir las variables de decisión:
𝑥𝑖𝑗=Cantidad de productos transportados desde la faˊbrica 𝑖 al almaceˊn 𝑗xij=Cantidad de productos transportados desde la faˊbrica i al almaceˊn j
Formular la función objetivo:
Minimizar 𝑍=∑𝑖=13∑𝑗=14𝑐𝑖𝑗𝑥𝑖𝑗Minimizar Z=i=1∑3j=1∑4cijxij
Establecer las restricciones:Capacidad de las fábricas:
∑𝑗=14𝑥𝑖𝑗≤Capacidad de la faˊbrica 𝑖j=1∑4xij≤Capacidad de la faˊbrica i
Demanda de los almacenes:
∑𝑖=13𝑥𝑖𝑗=Demanda del almaceˊn 𝑗i=1∑3xij=Demanda del almaceˊn j
Modelos de Asignación
Objetivo: Asignar recursos (como empleados o máquinas) a tareas específicas, minimizando el costo o maximizando la eficiencia.
Ejemplo: Asignar 5 empleados a 5 tareas, con diferentes costos asociados a cada asignación.
Pasos para Plantear el Modelo:Definir las variables de decisión:
𝑥𝑖𝑗={1si la tarea 𝑖 es asignada al empleado 𝑗0en caso contrarioxij={10si la tarea i es asignada al empleado jen caso contrario
Formular la función objetivo:
Minimizar 𝑍=∑𝑖=15∑𝑗=15𝑐𝑖𝑗𝑥𝑖𝑗Minimizar Z=i=1∑5j=1∑5cijxij
Establecer las restricciones:Cada tarea debe ser asignada a un empleado:
∑𝑗=15𝑥𝑖𝑗=1∀𝑖j=1∑5xij=1∀i
Cada empleado debe realizar solo una tarea:
∑𝑖=15𝑥𝑖𝑗=1∀𝑗i=1∑5xij=1∀j
Resolución de Modelos de Transporte
Para resolver un modelo de transporte, se pueden utilizar métodos como el método de la esquina noroeste, el método de costo mínimo o el método de aproximación de Vogel. Utilizando software como Excel Solver, LINGO o herramientas de programación como Python con la biblioteca PuLP, podemos encontrar la solución óptima.
Ejemplo Resuelto en Excel Solver:Ingresar los datos del problema:Costos de transporte, capacidades y demandas.
Configurar Solver:Definir la función objetivo, las variables de decisión y las restricciones.
Ejecutar Solver y analizar los resultados:Verificar que se cumplan todas las restricciones y que se minimice el costo total.
Resolución de Modelos de Asignación
Asi se veria un codigo de ejercicio:
import pulp
# Definir el problema
prob = pulp.LpProblem("Asignacion", pulp.LpMinimize)
# Definir las variables de decisión
x = pulp.LpVariable.dicts("x", [(i, j) for i in range(5) for j in range(5)], 0, 1, pulp.LpBinary)
# Costos de asignación
costos = [[10, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25]]
# Función objetivo
prob += pulp.lpSum(costos[i][j] * x[(i, j)] for i in range(5) for j in range(5))
# Restricciones
for i in range(5):
prob += pulp.lpSum(x[(i, j)] for j in range(5)) == 1
for j in range(5):
prob += pulp.lpSum(x[(i, j)] for i in range(5)) == 1
# Resolver el problema
prob.solve()
# Mostrar los resultados
for v in prob.variables():
if v.varValue > 0:
print(f'{v.name} = {v.varValue}')
print(f"Valor óptimo: {pulp.value(prob.objective)}")
https://colab.research.google.com/drive/1x2J2VTcmSpXwClgZbG-Krd7UBoxsCsLp?usp=sharing
Comentarios
Publicar un comentario