Вы находитесь на странице: 1из 3

Proyecto: Fiesta de Integraci on?

Jose Bernal
Escuela de Ingenier a de Sistemas y Computaci on Universidad del Valle E-mail: jose.bernal@correounivalle.edu.co

Jesus Aranda
Escuela de Ingenier a de Sistemas y Computaci on Universidad del Valle E-mail: jesus.aranda@correounivalle.edu.co

I. I NTRODUCCI ON El presente proyecto tiene por objeto enfrentar a los estudiantes del curso:

La suma de la compatibilidad entre personas contiguas en la mesa debe ser m axima

Al an alisis de un problema real y el uso de los conceptos vistos en clase Al an alisis de un problema de eciencia A la escogencia y aplicaci on de varias t ecnicas de programaci on para dar diferentes alternativas de soluci on al problema A la escogencia de un lenguaje de programaci on y de unas estructuras de datos para la implementaci on de las diferentes alternativas II. E L PROBLEMA

Para esta importante tarea se ha decidido contratar una serie de capacitados Ingenieros de Sistemas de la Universidad del Valle los cuales tendr an como tarea listar las personas que ser an invitadas a la esta (ordenadas alfab eticamente). FORMAL DEL PROBLEMA III. D EFINICI ON Dadas las siguientes variables:

La empresa DP Solutions planea realizar una actividad de integraci on entre sus empleados. Sin embargo, como es bien sabido, entre empleados y jefe directos existen continuos problema. Para evitar que esta inc omoda situaci on se presente en dicha actividad se ha sugerido que si un trabajador es invitado, sus empleados a cargo no lo ser an y viceversa. Adem as, dado que la idea es que las personas se integren, se debe contar con personas que den alegr a a la esta.

P conjunto de personas de la empresa xi variable binaria que representa que la persona i fue invitada. Asuma que si xi es igual a 1, entonces la persona fue invitada a la esta. ai variable que representa la alegr a de la persona i cij variable que representa la compatibilidad que existe entre la persona i y la persona j l(x, y ) funci on que devuelve true si x est a sentado al lado de y y viceversa, en la mesa principal, f alse en caso contrario. j (x, y ) funci on que devuelve true si x es jefe de y , f alse en caso contrario.

Se presenta el siguiente modelo: i P j P (xi = 1 j (i, j ) xj = 0) i P j P (xj = 1 j (i, j ) xi = 0) M ax


i P

(1) (2) (3) (4) (5)

xi ai
iP

M ax
Fig. 1. Reuni on. Tomado de http://www.adgully.com

M ax Como si fuera poco, no s olo se debe lidiar con el problema de a qui en invitadar sino que, adicionalmente, existe el problema de qui en se sentar a junto a qui en en la mesa principal al momento de la cena especial. Cabe recalcar que la mesa es circular. Una soluci on a una entrada espec ca debe tener las siguientes caracter sticas:
i,j P

cij

i P (xi = 1 j P k P (xj = 1xk = 1l(i, j )l(i, k )) La proposici on (1) y (2) hacen referencia a la restricci on jefe-empleado. La ecuaci on (3) indica la cantidad de personas invitadas es m axima. La ecuaci on (4) indica la alegr a de la esta generada por las personas invitadas es m axima. La ecuaci on (5) indica que la compatibilidad entre personas sentadas contiguas en la mesa principal es m axima. La proposici on nal hace referencia a la caracter stica de la mesa redonda, en la cual todos los invitados tiene 2 vecinos.

Se invit o a la m axima cantidad de personas posibles a la esta dada la restricci on jefe-empleado La suma de alegr a de la esta es m axima dada la restricci on jefe-empleado

CNICAS UTILIZADAS IV. T E Para la soluci on 1) Implementar 2) Implementar 3) Implementar a este problema, usted debe: el algoritmo ingenuo un algoritmo voraz un algoritmo din amico

Y S IMULACI ON V. I MPLEMENTACI ON Para el desarrollo del miniproyecto usted debe escoger el ambiente y el lenguaje de programaci on en que va a trabajar (Univalle debe tener licencia o ser libre). Se deber a implementar una interfaz de entrada/salida gr aca. La entrada se leer a de archivos de texto; la interfaz de salida debe permitir ver claramente que la soluci on s satisface el pedido de entrada. La entrada del problema estar a normalizada para permitir que todos los grupos prueben sus algoritmos con los mismos datos. La salida del problema, de la misma manera, estar a normalizada para permitir la vericaci on de los resultados obtenidos. Los formatos de los archivos correspondientes a la entrada y salida est an especicados en la secci on 6. Los grupos que logren obtener un menor costo de ejecuci on con los datos de entrada tendr an un reconocimiento especial en la nota del proyecto. VI. E NTRADA /S ALIDA A. Entrada rbol que representa la jerarqu Se cuenta con un a a en la empresa. La estructura se representa a trav es de la siguiente gram atica: empleado ::= ( nombre alegr a { empleado }* ) nombre ::= string alegr a ::= integer En el ejemplo que se muestra a continuaci on se espera que los invitados a la esta sean: Cindy y Ra ul. ( Ra ul 5 ( Laura 2 ) ( Pepe 1 ( Cindy 4 ) ) ( David -2 ) ) Adicionalmente, se cuenta con una matriz en la cual se tienen las compatibilidades de las personas de la empresa. Para efectos pr acticos, la matriz ser a sim etrica. La entrada se leer a desde un archivo de texto con la siguiente informaci on: 1) La primera l nea contiene un n umero entero N que representa la cantidad de empleados de la empresa 2) Las siguientes N l neas contienen la matriz de compatibilidad, cada una con el nombre del empleado y N parejas (nombre:entero) siendo el entero el grado de compatibilidad. rbol de jerarqu 3) Finalmente, se presenta el a a. Un ejemplo de archivo de entrada ser a: 5 Ra ul (R aul,0) (Laura,1) (Pepe,2) (David,2) (Cindy,3)

Laura (R aul,0) (Laura,0) (Pepe,-2) (David,1) (Cindy,3) Pepe (R aul,1) (Laura,-2) (Pepe,0) (David,2) (Cindy,3) David (R aul,2) (Laura,2) (Pepe,2) (David,0) (Cindy,2) Cindy (R aul,3) (Laura,3) (Pepe,2) (David,2) (Cindy,0) ( Ra ul 5 ( Laura 2 ) ( Pepe 1 ( Cindy 4 ) ) ( David -2 ) ) B. Salida La salida ser an una l nea con el nombre de las personas que ser an invitadas a la esta ordenadas teniendo en su posici on en la mesa principal. Para efectos de normalizaci on de la salida, la lista iniciar a con la persona cuyo nombre debiera aparecer primero alfab eticamente. Un ejemplo de salida ser a: Cindy, Ra ul VII. A N ALISIS A. Eciencia en tiempo Para cada una de las alternativas deber a calcular la complejidad en tiempo, pr actica, extrapol andola de las medidas de tiempo de ejecuci on tomadas para diferentes entradas y diferentes tama nos. Esto implicar a generar un n umero grande de ejemplos de prueba, al azar y guardarlos en un archivo, para poder probar todas las alternativas con los mismos datos. Tambi en deber a comparar los tiempos tomados por las diferentes alternativas, y a partir de all sacar conclusiones (si le es posible). B. Eciencia en espacio Para cada una de las alternativas deber a calcular la complejidad en espacio, pr actica, extrapol andola de las medidas de espacio demandado (en disco y en memoria principal) tomadas para diferentes entradas y diferentes tama nos. Tambi en deber a comparar los espacios medidos para las diferentes alternativas, y a partir de all sacar conclusiones (si le es posible). C. Otros detalles Desarrolle y soporte su an alisis utilizando los m etodos apropiados (tablas, gr acos, indicadores estad sticos), donde puedan apreciarse las variaciones de acuerdo al tama no y naturaleza de los datos de entrada. Explique claramente el signicado de sus datos y c omo se analizaron. Sugerencia: Sus resultados ser an m as exactos si sus muestras son variadas y lo sucientemente grandes. VIII. C ONCLUSIONES Esta es una de las partes m as interesantes del trabajo (pero no por ello la que m as vale). En ella se espera que usted analice los resultados obtenidos y justique claramente sus armaciones.

IX. G RUPOS DE TRABAJO El miniproyecto puede ser desarrollado por grupos de m aximo 3 personas. X. E NTREGA Y SUSTENTACI ON Las entregas consisten en un archivo empaquetado y comprimido (tar.gz o zip), el nombre del archivo escrito con el siguinte estilo: Miniproy1BustosMarinMartinez.zip, donde Bustos, Mar n y Mart nez son los apellidos de los integrantes del grupo. Debe contener los siguientes elementos: 1) C odigo fuente con la aplicaci on 2) Archivos de entrada y salida utilizados 3) Archivo Fiesta.pdf con: a) An alisis temporal y espacial de las operaciones implementadas b) Detalles principales de la implementaci on (no el c odigo) c) Descripci on y an alisis de las pruebas realizadas d) An alisis de los resultados del punto anterior. Coincide el comportamiento de la implementaci on con la complejidad esperada de cada una de las soluciones? e) Conclusiones y aspectos a mejorar La fecha m axima de entrega es el Domingo 2 de Junio de 2013 a las 11:55 p.m. La fecha de sustentaci on se acordar a posteriormente. XI. C ALIFICACI ON La calicaci on del miniproyecto se har a teniendo en cuenta los siguientes criterios: 1) Denici on de las estructuras de datos implementadas y correcto an alisis de sus operaciones 2) An alisis te orico y practico de las operaciones implementadas 3) Documentaci on 4) Implementaci on 5) Sustentaci on En todos los casos la sustentaci on ser a pilar fundamental de la nota asignada. Cada persona de cada grupo, despu es de la sustentaci on tendr a asignado un n umero real (el factor de multiplicaci on) entre 0 y 1, correspondiente al grado de calidad de su sustentaci on. Su nota denitiva ser a la nota del proyecto, multiplicada por ese valor. Si su asignaci on es 1, su nota ser a la del proyecto. Pero si su asignaci on es 0.9, su nota ser a 0.9 por la nota del proyecto. La no asistencia a la sustentaci on tendr a como resultado una asignaci on de un factor de 0.