0% encontró este documento útil (0 votos)
30 vistas4 páginas

Instrucciones para Tarea 1 en PuLP

1. Este documento proporciona instrucciones para completar la Tarea 1. 2. Los estudiantes deben programar 4 modelos matemáticos aleatorios en Python usando PuLP. 3. Los modelos deben completarse dentro de funciones específicas en un archivo Python proporcionado y no deben modificarse otras partes del código.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
30 vistas4 páginas

Instrucciones para Tarea 1 en PuLP

1. Este documento proporciona instrucciones para completar la Tarea 1. 2. Los estudiantes deben programar 4 modelos matemáticos aleatorios en Python usando PuLP. 3. Los modelos deben completarse dentro de funciones específicas en un archivo Python proporcionado y no deben modificarse otras partes del código.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

INSTRUCCIONES TAREA 1

1. Esta tarea es individual. La fecha de entrega está indicada en Canvas.

2. La entrega debe realizarse por Canvas. Es muy importante seguir las instrucciones de
entrega, ya que parte de la corrección se realizará de manera automática a través de un
programa computacional.

3. Su entrega debe consistir únicamente de dos archivos:

Un informe en formato PDF (si usa Word, exporte a PDF). El nombre del archivo debe
seguir la convención: [Link]. En su informe únicamente
incluya, para cada uno de los modelos que implementó:
• Número de modelo (del 1 al 11, ver más adelante)
• El modelo matemático (no incluya código python)
• Su solución (objetivo y valores de variables)
Un codigo de python en formato py. El nombre del archivo debe seguir la conven-
ción: [Link], sin acentos. Este archivo debe adherir
estrictamente a las instrucciones especı́ficas indicadas en este documento.
De lo contrario se descontarán hasta 2.0 puntos de la nota obtenida por
el alumno.

MODELOS A PROGRAMAR EN LA TAREA 1

Cada alumno debe programar 4 modelos en PuLP. Para cada alumno, estos modelos son elegidos
al azar de la siguiente forma.

Descargue el archivo [Link]. Su entrega debe realizarse modifi-


cando este archivo siguiendo las instrucciones. No modifique este archivo más allá
de lo explı́citamente indicado en este documento.

Abra este archivo con un editor de texto (puede ser desde Google Colab) y edite las varia-
bles NOMBRE y APELLIDO. Si su nombre es Alejandro Martı́nez, escriba NOMBRE="Alejandro"
y APELLIDO="Martinez". No incluya ningún tipo de caracteres especiales, ni acentos, ni
tampoco la letra ~n (reemplácela por una n). Sólo utilice su primer nombre y su primer
apellido.

Ejecute el programa incluido en este archivo, pero sólo después de haber editado las
variables NOMBRE y APELLIDO:

• Si usa Google Colab: primero cree una celda para el comando !pip install pulp, y
ejecútela. Luego importe el código del archivo a una segunda celda y ejecútela. Luego
realice toda su tarea en dicha celda. Para entregar su tarea, exporte el contenido de
la celda, usando: Archivo → Descargar → Descargar .py.
• Si usa Spyder u otra IDE: abra el archivo .py y ejecútelo según las instrucciones de
su IDE.
Tras la ejecución, debiese verse, al final de bastante texto, algo similar a lo siguiente (los
números de lı́nea (L1)-(L7) no aparecerán):

(L1)OPTI: INICIO VERIFICACION. Si su tarea esta completa, no debe haber ERROR hasta...
(L2)OPTI: NOMBRE Y APELLIDO ALUMNO : Alejandro Martinez
(L3)OPTI: Modelo Modelo_Ejemplo([Link] Ejemplo) tiene optimo finito...
(L4)OPTI: ERROR en Modelo_P1(Ej.2) : Complete la funcion Modelo_P1 () y asegurese...
(L5)OPTI: ERROR en Modelo_P2(Ej.3) : Complete la funcion Modelo_P2 () y asegurese...
(L6)OPTI: ERROR en Modelo_P3(Ej.9) : Complete la funcion Modelo_P3 () y asegurese...
(L7)OPTI: ERROR en Modelo_P4(Ej.10) : Complete la funcion Modelo_P4 () y asegurese...
(L8)OPTI: FIN VERIFICACION

Antes de continuar, verifique que su nombre y apellido aparecen correctamen-


te registrados en la lı́nea (L2). Su tarea consiste en programar en PuLP 4 modelos,
que denominaremos ModeloP1, ModeloP2, ModeloP3, ModeloP4. Esos 4 modelos se se-
leccionan al azar de una lista de 11 modelos que se encuentran al final de este documento.
La selección de los 4 modelos al azar aparece en la ejecución del programa, en las lı́neas
(L4), (L5), (L6) y (L7). Por ejemplo, en la lı́nea (L6):
(L6)OPTI: ERROR en ModeloP3(Ej.9) : Complete la funcion ModeloP3 () y asegurese...

se indica que el tercer modelo que debemos implementar (de 4 en total) es el modelo
número 9 de la lista de 11 modelos que se encuentran al final de este documento. La
selección al azar depende de su nombre y de su apellido. En el caso de este ejemplo
ficticio descrito, los modelos a implementar serı́an el 2, 3, 9 y 10.
PROGRAMANDO LOS MODELOS EN PULP

Puede programar los modelos como prefiera (en Google Colab, Spyder, etc.) Pero su entrega en
Canvas debe hacerse insertando los modelos programados el archivo [Link]
que acaba de editar, y esto siguiendo instrucciones muy especı́ficas. Alternativamente, puede
trabajar directamente sobre el archivo [Link]. Cualquiera sea el ca-
so, lea la siguiente sección antes de continuar para entender como estos modelos deben ser
entregados.

ENTREGANDO EL CODIGO

Para entregar el código, lo único que debe realizar es çompletar 4 funciones que ya se encuentran
definidas en el archivo [Link], en las lı́neas 23 a 37. Al subir los
modelos no debe modificar el resto del archivo. Estas funciones son :

def Modelo_P1():

2
def Modelo_P2():
def Modelo_P3():
def Modelo_P4():

Estas funciones deben contener el código que genera cada uno de los modelos que se le asignó.
Recuerde que cada función corresponde a un modelo del 1 al 11 en especı́fico. Ası́, en nuestro
caso de ejemplo, la función ModeloP3 debe implementar el Modelo 9 de la lista de modelos.

Si bien estas funciones ya se encuentran definidas en el archivo [Link],


de momento sólo generan un modelo model sin variables ni restricciones que luego se retorna.
El sistema detecta que los modelos entregados están vacı́os y por eso reporta ERROR en las
lı́neas (L4)-(L7). Usted debe editar estas funciones para que construyan los modelos correspon-
dientes. Un ejemplo de como hacer esto se encuentra en la función def ModeloEjemplo() que
se encuentra en la lı́nea 41. Dicha función contiene un modelo de ejemplo que está completo
y funcional. Note como el sistema reporta que dicho modelo está resuelto e incluso indica su
valor óptimo en la lı́nea (L3):

(L3)OPTI: Modelo ModeloEjemplo([Link] Ejemplo) tiene optimo finito, su valor


es 3.0

Una vez que usted implemente estas funciones con los modelos correspondientes, las lı́neas (L4)
a (L7) dejarán de tener un mensaje de ERROR e indicarán la solución obtenida con cada modelo
entregado. Si su solución que usted espera entregar se reporta en las lı́neas (L1)-(L7), entonces
la tarea puede subirse a Canvas con la tranquilidad de que su código será ejecutado y revisado
sin problemas por el/la ayudante. Las lı́neas ((L1)-(L7) no validan si sus respuestas
están correctas o no.

IMPORTANTE: No edite ninguna lı́nea del archivo entregado, excepto por las varia-
bles NOMBRE y APELLIDO, además de las funciones ModeloP1(), ModeloP2(), ModeloP3(),
ModeloP4(). Estudiantes más experimentados pueden realizar las modificaciones permitidas
explı́citamente en el archivo, pero bajo su responsabilidad.

3
Recuerde que usted debe implementar sólo 4 modelos de esta lista.

Lista de 11 Modelos

Modelos 1 al 5. En el libro de Hillier-Lieberman (ver bibliografı́a, el libro esta disponible en


lı́nea desde Canvas), hay varios modelos implementados entre las páginas 41 y 55. Las variables,
restricciones y objetivo de dichos modelos, ası́ como la solución (valor objetivo) están descritos
en las páginas indicadas.

Numero de Modelo Pág. Libro Tı́tulo del modelo según el libro


1 41-44 Planeación regional
2 44-47 Control contaminación de aire
3 47-50 Reciclado desechos sólidos
4 51-53 Programación personal
5 53-55 Distribucion de bienes a traves de una red

Modelos 6 al 11. En el libro de Hillier-Lieberman (ver bibliografı́a, el libro esta disponible en


lı́nea desde Canvas), hay un caso de estudio relacionado al ensamble de automóviles. El caso
es el 3.1, se encuentra en la página 79-80, y tiene sub-preguntas etiquetadas de la a) a la j). En
varias sub-preguntas se debe realizar una modificación al modelo de la sub-pregunta a)

La respuesta a la sub-pregunta a) se entrega aquı́ como referencia:

max 3600x1 + 5400x2


s.a :
6x1 + 10,5x2 ≤ 48000
4x1 + 2x2 ≤ 20000
x2 ≤ 3500
x1 , x2 ≥ 0

Note que no utilizaremos variables enteras (aunque esto sea lo natural). Los modelos 6 a 11
son los modelos que se deben implementar para responder las subpreguntas b), c), e), h),i), g)
según se indica en la siguiente tabla:

Nı́mero de Modelo Letra sub-pregunta Observación


6 b El texto borroso dice que la demanda de Classy
Cruiser se eleva en 20 %
7 c
8 e
9 h
10 i Ignore todo lo que sigue a: ”Pueden pedirle que
cumpla con toda la demanda...”
11 g

También podría gustarte