Vous êtes sur la page 1sur 6

Universidad de Chile.

Facultad de Ciencias Físicas y Matemáticas.


Departamento de Ingeniería Industrial.
IN3701: Modelamiento y Optimización.
Primavera 2019

Tarea Computacional 1.
Integrantes: Juan Donoso, Aldo Mercandino. Fecha de entrega: lunes 19 de agosto, 2019.

I. Descripción del Problema:


Imagine que participa en el curso “Taller de Ingeniería Industrial” y quiere coordinar el trabajo
de su grupo, que tiene un conjunto de personas, por ejemplo: M= {Christiane, Rocio, Carla,
Valentina, Karen}. Hay un conjunto J de tareas que se deben hacer para completar el proyecto.
Para cada tarea ∈ hay un valor ≥ 0 que corresponde al número de horas que se debe
dedicar a hacer la tarea . Se debe asignar exactamente una persona del grupo a cada trabajo. Si
un miembro del equipo, ∈ tiene un conjunto de tareas ⊆ asignado, entonces el
miembro tiene que trabajar ∑ ∈ ´ horas en total. El objetivo es minimizar el número de
horas totales que trabaja la persona del grupo que más horas trabaja.
1. Formule un programa de optimización lineal entero para modelar el problema de
arriba.
Se definen los siguientes conjuntos :

={ }| |
# Conjunto de personas en el equipo.
| |
= # Conjunto de tareas a trabajar.
Con | | ≤ | | ; y | |, | | ≥ 0

A cada tarea se le debe asignar un tiempo de trabajo:


| |
= ℎ . # Conjunto de horas asignado a las diferentes tareas.

Se definen los elementos de los diferentes conjuntos:


∈ , ∈ , ∈ .

Se genera la matriz de decisión que dirá si el trabajador m realiza o no la tarea j:


∈ | |∙| | ({0,1}) donde:
1, ∈ ∈ .
=
0, .

Las horas que trabajará cada persona m :

ℎ =∑ ∈ ∙ ∀ ∈

Se restringe el problema añadiendo que todas las tareas son asignadas, y que solo hay
una persona por tarea, es decir:
∑ ∈ = 1, ∀ ∈

Además, se utiliza una variable auxiliar ∈ ℝ ∪ {0}, tal que:


H≥ℎ .∀ ∈
Universidad de Chile.
Facultad de Ciencias Físicas y Matemáticas.
Departamento de Ingeniería Industrial.
IN3701: Modelamiento y Optimización.
Primavera 2019

Y finalmente se plantea la función objetivo:


. .= ( )

2. Escriba un programa en Python que le permita calcular la planificación óptima con


ayuda de Gurobi. Cree una instancia generada de manera aleatoria con | | = 100 y
| | = 20, tal que ∈ {1, … . ,10} para cada ∈ .

3. Hay un conjunto ∗ ⊆ de miembros del equipo que son muy listos. Si un miembro
∈ ∗ hace una tarea ∈ , necesita solo /3 horas. Cambie su modelo anterior y
resuelva una instancia aleatoria nueva tal que | ∗ | = 3 para cada instancia creada.
Se harán algunos cambios sobre el modelo creado en la parte 1:

Se crean los parámetros de asignación de personas listas, de manera aleatoria como


sigue:

1, .
=
0, .

∀ ∈ . Donde solo hay 3 personas listas. Con lo anterior, las horas que trabajará
cada persona m esta vez serán:

ℎ =∑ ∈ ∙ ) ∙ (1 − ). ∀ ∈ .

En la ecuación anterior, se incluye la consecuencia de si la persona es inteligente en la


cantidad de horas que trabaja.
Se conservan las restricciones:

∑ ∈ = 1, ∀ ∈

H≥ℎ ∀ ∈

Como también la función objetivo:


. .= ( )

4. Hay un conjunto de trabajos ∗ ⊆ que son muy importantes. Si un miembro del equipo
hace un trabajo así, puede hacer a lo máximo 2 tareas en total. Cambie su modelo de la
parte anterior y resuelva una instancia aleatoria nueva tal que | ∗ | = 5.
Aquí es necesario añadir un parámetro para designar a las tareas importantes, de
manera aleatoria, con solo 5 tareas de esta índole, esto se consigue con el vector
definido como:
1, ∈
=
0, .
Universidad de Chile.
Facultad de Ciencias Físicas y Matemáticas.
Departamento de Ingeniería Industrial.
IN3701: Modelamiento y Optimización.
Primavera 2019
∀ ∈ . Por otro lado, hay que introducir una variable que modele el hecho de si una
persona ∈ hace una tarea importante o no, esto es mediante el vector
siguiente:
1, ∈ ℎ .
=
0, ∈ ℎ .

∀ ∈ . La magnitud de se asigna mediante restricciones, por lo tanto, en el


modelo de esta sección, se conservan las definiciones de la parte anterior, pero se
utilizan las siguientes restricciones, reemplazando las anteriores. Por completitud, son
todas las que siguen:
∑ ∈ = 1, ∀ ∈
≤ , ∙ ,∀ ∈

, ≤ 2 + 100 ∙ (1 − ),∀ ∈

ℎ =∑ ∈ ∙ ) ∙ (1 − ). ∀ ∈ .

H≥ℎ ∀ ∈ , ∈ ℝ ∪ {0}
Y la función objetivo se conserva:
. .= ( )

La segunda restricción señala que la multiplicación entre la matriz de asignación


y el vector de tareas importantes indica si la persona ∈ hace o no una tarea
importante. Mientras la tercera, restringe la cantidad de tareas de cada persona según
la importancia de estas, utilizando la regla de “la gran M”, en este caso, 100 es el mínimo
suficiente para modelar el problema.

5. Ahora asumimos que el equipo es dividido en 4 subgrupos tal que hay que asignar
una tarea ∈ a un subgrupo y los miembros de cada subgrupo pueden dividir el
trabajo j en una manera arbitraria entre ellos. Por ejemplo, si una tarea necesita =
4 horas, y el subgrupo tiene 3 miembros, es posible que un miembro trabaje 0.5hrs, un
miembro trabaje 2.5hrs y el tercero una hora en . Si un miembro listo del equipo hace
una fracción de un trabajo , necesita ∙ /3 horas para esto. Cambie su modelo de la
parte 3 y añada los subgrupos a la instancia generada en la parte 4. Tal que cada
subgrupo tenga 5 miembros. Compare el valor de la solución.

En este punto, es necesario reescribir cada modelo por completitud y rigor matemático.
Con la situación planteada, se añade un parámetro de asignación que distribuye a
las personas en los grupos. Es decir, si se parte el conjunto en los conjuntos disjuntos
, donde =∪ , se tiene:
1, ∈
=
0,
∀ ∈ y ∀ ∈ {1,2,3,4}. También se debe asignar las tareas a los grupos, esto se
modela con la matriz de decisión , definida como sigue:
Universidad de Chile.
Facultad de Ciencias Físicas y Matemáticas.
Departamento de Ingeniería Industrial.
IN3701: Modelamiento y Optimización.
Primavera 2019
1, ∈ .
=
0, ∈ .
∀ ∈ y∀ ∈ {1,2,3,4}.

Además, la matriz de asignación es redefinida para responder a la fracción de


horas de que la persona ∈ dedica a esta tarea, de este modo:
0, ∈ ∈
=
∈ (0,1] ⊂ ℝ,

Es interesante entender que las matrices de designación , , guardan una


relación lineal entre las personas, los subgrupos y las tareas, queda mas claro mediante
el diagrama que sigue:
{ } { } ⎯ { } ⎯ { }
Por lo tanto, tiene sentido pensar en una transformación lineal que me lleve entre el
conjunto de personas a tareas pasando por los subgrupos. En efecto, la multiplicación
matricial entre y permite definir la matriz binaria que sigue:

1, ∈ ∈ .
= ∙ =
0, ∈ ∈ .

Esto es así pues solo un valor de la fila m de la matriz = 1. Con esto se completa el
círculo de designación, y además se tiene la fracción de tiempo que trabaja la persona
en cada tarea.

Con todo lo anterior, se pueden modificar los modelos de la parte 3 y 4 reescribiendo las
restricciones, sin pérdida de generalidad:
Para la parte 3, se reemplazan las restricciones por las que siguen, utilizando las
variables y parámetros redefinidas recientemente:

= 1, ∀ ∈

≤ , ∀( , ) ∈ ×
= 1, ∀ ∈

ℎ =∑ ∈ ∙ ) ∙ (1 − ). ∀ ∈ .

H≥ℎ ∀ ∈ , ∈ ℝ ∪ {0}
Y se conserva la definición de la función objetivo:
. .= ( )
Para resolver la modificación de la parte 4 a esta situación, se conservan las
restricciones anteriores y se añaden las siguientes; aunque por supuesto, la definición
de los valores y se conservan:
Universidad de Chile.
Facultad de Ciencias Físicas y Matemáticas.
Departamento de Ingeniería Industrial.
IN3701: Modelamiento y Optimización.
Primavera 2019

≤ , ∙ ,∀ ∈

, ≤ 2 + 100 ∙ (1 − ) ,∀ ∈

Universidad de Chile.
Facultad de Ciencias Físicas y Matemáticas.
Departamento de Ingeniería Industrial.
IN3701: Modelamiento y Optimización.
Primavera 2019
II. Conclusiones.

Si bien no se alcanzó a añadir los resultados, es menester dejar constancia que como herramientas
para análisis ulteriores, se haría necesario tomar valores representativos de cada iteración de los
programas utilizados en cada sección/problema, para luego ser comparados teniendo en cuenta
las condiciones de cada instancia
Estos valores representativos bien pueden ser obtenidos de una cantidad razonable de iteraciones
de cada programa, aprovechando la potencia de la computadora, registrando los índices de
tendencia central en cada iteración, esto es, el rango de horas trabajadas por los miembros del
grupo, el promedio y desviación estándar, como también los promedios globales de cada uno de
ellos. Una tabla tentativa de lo señalado con anterioridad puede ser
N° Iteración ℎ ℎ (ℎ ) . (ℎ )
1
2
3
Promedios

Con estos valores, es posible comparar la conveniencia de distribuir el trabajo como propone cada
sección. Se podría decir, que si el número de iteraciones es comparable en magnitud a la cantidad
de maneras de distribuir las tareas en cada situación, se estaría aplicando el método de
Montecarlo para estudiar la conveniencia de cada situación propuesta.
Las situaciones de cada sección son comparables como sigue:
En la parte 2, se considera a cada estudiante de igual manera.
En las partes 3 y 4, se añade la posibilidad de añadir la variable de tener estudiantes aplicados en
las tareas propuestas, y el factor 1/3 se podría variar en cada estudiante si se quiere tener un
modelo quizás mas adecuado según el historial académico de cada miembro del grupo M, o bien,
utilizar la distribución normal para asignar este factor.
La comparación mas importante esta entre las modificaciones de la parte 5 con su respectiva
sección, 3 o 4. Donde se plantea la posibilidad de que los estudiantes trabajen de manera conjunta
cada tarea y no de manera separada. Se podría argüir que debería ser mejor, sin embargo, como
se planteó anteriormente, lamentablemente esto quedo para análisis ulterior de los resultados.

Vous aimerez peut-être aussi