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∑3​j=1∑4​cij​xij​
Establecer las restricciones:Capacidad de las fábricas:
∑𝑗=14𝑥𝑖𝑗≤Capacidad de la faˊbrica 𝑖j=1∑4​xij​≤Capacidad de la faˊbrica i
Demanda de los almacenes:
∑𝑖=13𝑥𝑖𝑗=Demanda del almaceˊn 𝑗i=1∑3​xij​=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​={10​si la tarea i es asignada al empleado jen caso contrario​
Formular la función objetivo:
Minimizar 𝑍=∑𝑖=15∑𝑗=15𝑐𝑖𝑗𝑥𝑖𝑗Minimizar Z=i=1∑5​j=1∑5​cij​xij​
Establecer las restricciones:Cada tarea debe ser asignada a un empleado:
∑𝑗=15𝑥𝑖𝑗=1∀𝑖j=1∑5​xij​=1∀i
Cada empleado debe realizar solo una tarea:
∑𝑖=15𝑥𝑖𝑗=1∀𝑗i=1∑5​xij​=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)}")


Link Google Colab: 
https://colab.research.google.com/drive/1x2J2VTcmSpXwClgZbG-Krd7UBoxsCsLp?usp=sharing


Comentarios