implementacyion de un ag para el rcpsp
TRANSCRIPT
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
1/58
Escuela Superior Politcnica Del Litoral
Instituto de Ciencias Matemticas
Ingeniera en Logstica y Transporte
Implementacin de un Algoritmo Gentico para resolverel Problema de Programacin de Proyectos con
Recursos Limitados
Informe del Proyecto de Graduacin
Previo a la obtencin del Ttulo de:Ingeniero en Logstica y Transporte
Presentado por:Gabriela Narvez Molina
Ramiro Saltos Atiencia
Guayaquil Ecuador
Ao2010
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
2/58
Agradecimiento
Agradecemos en primer lugar a Dios
porque nos ha permitido alcanzar
nuestras metas y nos ha bendecido
con unos maravillosos padres y
profesores.
Agradecemos de manera especial a
todos los profesores que formaron
parte de nuestro proceso de formacin
acadmica y profesional as como al
Mat. Fernando Sandoya por el apoyo
brindado en la elaboracin de este
proyecto y por su excelente trabajo
como coordinador de nuestra carrera
buscando siempre que se brinden
todas las facilidades para que sus
estudiantes ms destacados puedan
seguir adelante en su formacin.
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
3/58
Dedicatoria
Dedicamos este trabajo a nuestros
padres que siempre nos han brindado
su apoyo incondicional y nos han
guiado en los momentos difciles de
nuestra vida.
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
4/58
Tribunal de Graduacin
Ing. Fabricio Echeverra Briones Mat. Fernando Sandoya Snchez
Director del Proyecto de Graduacin Delegado
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
5/58
Declaracin Expresa
La responsabilidad del contenido de este Trabajo Final de Graduacin, nos
corresponde exclusivamente; y el patrimonio intelectual del mismo a la Escuela
Superior Politcnica del Litoral
Ramiro Javier Saltos Atiencia Ana Gabriela Narvez Molina
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
6/58
Resumen
Mayoritariamente las empresas de produccin industrial y aquellas que brindan
servicios de mantenimiento, cotidianamente se enfrentan a un problema de ndole
operativo que debe ser resuelto por las personas competentes en el menor tiempo
posible. Este equipo de trabajo tiene en frente un proyecto que est compuesto por
una serie de actividades y procesos que tienen una duracin determinada. Las
actividades del proyecto consumen los recursos escasos de la compaa y
obedecen a una serie de relaciones de precedencia. El equipo de trabajo deber
elaborar una secuencia segn la cual se deben ejecutar las diferentes actividades,
respetando todas las limitantes consideradas, de tal manera que el tiempo de
finalizacin del proyecto sea el menor posible. Este tipo de problema suele ser
conocido en la literatura cientfica como el Problema de Programacin de Proyectos
con Recursos Limitados (RCPSP por sus siglas en ingls).
En el primer captulo daremos a conocer el entorno cambiante sobre el cual se
desenvuelven las empresas actualmente, junto con la importancia que tienen los
niveles gerenciales en la bsqueda de la mejora continua y en la generacin de
nuevo conocimiento. Se mencionar qu es un proyecto, cules son los elementos
que lo componen y se describir el problema que abordar la presente
investigacin junto con los objetivos que se esperan alcanzar.
En el segundo captulo se mencionarn los esquemas algortmicos y las reglas
heursticas de prioridad usualmente utilizadas para resolver el RCPSP. Luego se
abordar la teora que soporta a los algoritmos genticos, conoceremos sus
ventajas y cul es su analoga con los problemas de optimizacin.
En el tercer captulo se detallan los criterios utilizados para el diseo del algoritmo
gentico que buscar resolver eficientemente el problema abordado en la presente
investigacin. As mismo se menciona otros criterios usualmente utilizados.
En los captulos siguientes se detalla la codificacin del algoritmo gentico
desarrollado y se realiza un anlisis de su eficacia. Finalmente, se presentan lasconclusiones y recomendaciones de nuestra investigacin.
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
7/58
ndice General
Agradecimiento........................................................................................................ 2
Dedicatoria .............................................................................................................. 3
Tribunal de Graduacin ........................................................................................... 4
Declaracin Expresa................................................................................................ 5
Resumen................................................................................................................. 6
ndice General ......................................................................................................... 7
ndice de Tablas ...................................................................................................... 9
ndice de Figuras ....................................................................................................10Abreviaturas ...........................................................................................................11
1. Antecedentes......................................................................................................12
1.1. Introduccin .................................................................................................12
1.2. Los Proyectos..............................................................................................15
1.2.1. Qu es un proyecto?...........................................................................15
1.2.2. Las Tareas o Actividades......................................................................16
1.2.3. Los Recursos ........................................................................................17
1.3. Descripcin del Problema ............................................................................171.4. Objetivos......................................................................................................21
2. Marco Terico.....................................................................................................22
2.1. Introduccin .................................................................................................22
2.2. Definicin Matemtica del RCPSP...............................................................22
2.3. Modelo Matemtico del RCPSP...................................................................23
2.4. Grafo de Precedencia del RCPSP ...............................................................23
2.5. Ejemplo del RCPSP.....................................................................................24
2.6. Complejidad Computacional ........................................................................252.7. Mtodos Heursticos utilizados para la Resolucin del RCPSP....................25
2.7.1. Esquemas Algortmicos.........................................................................25
2.7.2. Reglas Heursticas de Prioridad............................................................26
2.8. Algoritmos Genticos...................................................................................28
2.8.1. Filosofa de los Algoritmos Genticos ...................................................28
2.8.2. Ventajas de un Algoritmo Gentico .......................................................30
2.8.3. Esquema General de los Algoritmos Genticos ....................................30
2.8.4. Analoga con los Problemas de Optimizacin........................................32
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
8/58
3. Diseo del Algoritmo Gentico para el RCPSP...................................................33
3.1. Codificacin .................................................................................................33
3.2. Elaboracin del Cromosoma........................................................................33
3.3. Creacin de la Poblacin Inicial ...................................................................34
3.4. Fitness .........................................................................................................35
3.5. Seleccin Natural.........................................................................................35
3.6. Operador de Cruce ......................................................................................36
3.7. Mutacin ......................................................................................................37
3.8. Criterio de Parada........................................................................................39
3.9. Creacin del Calendario de Ejecucin .........................................................39
4. Implementacin del Algoritmo Gentico para el RCPSP.....................................41
4.1. Seleccin del Software de Programacin.....................................................41
4.2. Estructura de los Datos................................................................................42
4.3. Organizacin de la Solucin.........................................................................43
4.3.1. Funciones .............................................................................................44
4.3.2. Programa Principal................................................................................50
5. Anlisis del Algoritmo y Resultados ....................................................................52
6. Conclusiones y Recomendaciones .....................................................................567. Referencias Bibliogrficas ..................................................................................58
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
9/58
ndice de Tablas
Tabla 1: Un Proyecto con 12 Tareas y 2 Recursos.................................................24
Tabla 2: Tiempos de Inicio de las Actividades del Proyecto....................................24
Tabla 3: Datos Adicionales del Proyecto.................................................................27
Tabla 4: Estructura de Ingreso de los Datos ...........................................................43
Tabla 5: Esquema de la Disponibilidad de los Recursos.........................................43
Tabla 6: Estructura de la Respuesta.......................................................................49
Tabla 7: Resultados para la Instancia 1..................................................................52
Tabla 8: GAP Relativo de la Instancia 1..................................................................53Tabla 9: Tiempo de Ejecucin de la Instancia 1 en Segundos................................53
Tabla 10: Resultados para la Instancia 2................................................................53
Tabla 11: Gap Relativo para la Instancia 2 .............................................................53
Tabla 12: Tiempo de Ejecucin para la Instancia 2 en Segundos...........................54
Tabla 13: Resultados para 10 Instancias con N = 60..............................................54
Tabla 14: Resultados para 30 Instancias con N = 30..............................................55
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
10/58
ndice de Figuras
Figura 1: Niveles Gerenciales.................................................................................12
Figura 2: Diagrama de Gantt ..................................................................................19
Figura 3: Diagrama de Precedencia........................................................................24
Figura 4: Proceso Evolutivo de las Especies ..........................................................29
Figura 5: Esquema de un Algoritmo Gentico.........................................................31
Figura 6: Proceso del Algoritmo Gentico...............................................................31
Figura 7: Diagrama de Gantt de un Proyecto con 30 Tareas ..................................50
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
11/58
Abreviaturas
JSSP Problema de Programacin de las rdenes de Trabajo
(Job Shop Scheduling Problem)
RCPSP Problema de Programacin de Proyectos con Recursos
Limitados
(Resource Constrained Project Scheduling Problem)
MTS Mayor Nmero de Sucesores
(Most Total Succesors)
GRPW Mayor Ranking por Peso Posicional
(Greatest Rank Positional Weight)
LST Tiempo de Inicio ms Tardo
(Latest Start Time)
EST Tiempo de Inicio ms Temprano
(Earliest Start Time)
LFT Tiempo de Finalizacin ms Tardo
(Late Finish Time)
AG Algoritmo Gentico
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
12/58
-12-
1. Antecedentes
1.1. Introduccin
En la actualidad, el entorno tanto macro como microeconmico sobre el cual se
desenvuelven las empresas de nuestro pas est cambiando continuamente y a una
gran velocidad. Esto se debe principalmente al auge de las nuevas tecnologas, la
revolucin de la informtica y a la gran facilidad con la que ahora podemos
comunicarnos con cualquier parte del mundo. La globalizacin est obligando a las
industrias a mejorar continuamente en todos sus aspectos, los clientes son cada
vez ms exigentes en cuanto a los productos y servicios que demandan, no solo en
el aspecto relacionado a la calidad intrnseca de los mismos, sino tambin desean
que exista una rpida respuesta por parte de los productores en el momento que
aparece su necesidad. Esto es, esperan que su proveedor pueda ofrecerles los
tiempos de entrega ms cortos posibles a un costo razonable y manteniendo la
calidad del producto ofrecido.
Para poder cumplir con las nuevas y continuamente crecientes exigencias de losclientes, las empresas deben buscar mantener una eficiente administracin en
todas sus reas funcionales, estas reas bsicamente estn agrupadas en tres
zonas importantes dadas por los niveles gerenciales. Estos niveles gerenciales
suelen ser clasificados en tres: Alta Gerencia, Gerencia Media y Gerencia
Operativa. Su relacin y jerarqua se aprecia en la figura 1.
Figura 1: Niveles Gerenciales
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
13/58
-13-
La alta gerencia es la responsable de todos los departamentos de la organizacin,
se encarga de fijar los objetivos de la empresa y supervisar la manera cmo los
gerentes medios utilizan los recursos de la organizacin en la ejecucin de los
planes empresariales. Ellos tienen como prioridad minimizar los impactos que el
entorno macroeconmico pueda provocar en la empresa. El xito o fracaso de una
compaa depende en gran medida de este nivel gerencial.
La gerencia media se encarga de supervisar a los gerentes operativos en el
cumplimiento diario de sus funciones, as mismo, son responsables de buscar
mejores formas de utilizar los recursos de la organizacin y drselas a conocer a
los gerentes operativos para mejorar su desempeo, por lo cual continuamente
deben investigar y desarrollar nuevas estrategias y tcticas para lograr el
cumplimiento de los objetivos planteados por la alta gerencia.
Los gerentes operativos suelen ser conocidos tambin como supervisores y sus
principales funciones consisten en poner en marcha los planes elaborados por sus
gerentes medios, velar por el adecuado cumplimiento de los mismos y controlar el
personal de planta que tienen a su cargo.
En pocas palabras, la alta gerencia tiene a su cargo la planificacin estratgica de
la empresa por lo que sus decisiones suelen afectar a largo plazo a la compaa, la
gerencia media es la encargada de producir el nuevo conocimiento en la
organizacin y este ser el que permita la mejora continua de la empresa mientras
que los gerentes operativos se encargan de controlar los aspectos tcnicos que se
presenten diariamente para lo cual suelen disponer de manuales de procedimientos
para resolverlos efectivamente.
Basado en lo mencionado con anterioridad, podemos sacar a la luz que
probablemente el nivel gerencial ms crtico sea el mando medio porque tiene entre
sus responsabilidades tomar una gran cantidad de decisiones provocadas por
acontecimientos que no son estructurados en la empresa, con esto nos referimos a
situaciones completamente nuevas que requieren decisiones nicas y
personalizadas acorde con el problema enfrentado. Entendamos en este momento
como problema a una situacin indita que puede ser beneficiosa o perjudicial que
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
14/58
-14-
se presenta en la vida diaria de la compaa, y no necesariamente como un aspecto
estrictamente negativo.
Especficamente, en el sector industrial de la produccin y en el sector de servicios
de mantenimiento, los gerentes medios deben enfrentar continuamente dos
problemas de naturaleza combinatoria: el problema de secuenciacin de tareas en
varias mquinas conocido como Job Shop Scheduling Problem (JSSP) y el
problema de programacin de proyectos con recursos limitados comnmente
mencionado en la literatura como Resource Constrained Project Scheduling
Problem (RCPSP).
En el desarrollo del presente trabajo trataremos nicamente el RCPSP dando a
conocer en primera instancia cules son las herramientas que utilizan los gerentes
para hacerle frente y adems desarrollaremos una solucin basada en las tcnicas
metaheursticas que nos permita obtener mejores resultados en comparacin con
las herramientas convencionales.
En este punto conviene realizar algunas definiciones que permitirn comprender demejor manera el desarrollo de este trabajo.
Problemas de Clase Combinatoria:Los problemas de clase combinatoria
son aquellos problemas de optimizacin cuya complejidad computacional se
incrementa de manera no polinomial conforme se incrementa el nmero de
variables de decisin y el nmero de restricciones que forman parte del
problema combinatorio.
Complejidad Computacional:Estudia las necesidades de memoria, tiempo
de procesamiento y otros recursos computacionales que los algoritmos
necesitan para poder resolver un problema, de esta manera es posible
explicar por qu unos problemas son ms difciles de resolver que otros [11].
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
15/58
-15-
Metaheursticas:En su definicin original, son los mtodos de solucin que
orquestan una interaccin entre los procedimientos de mejora local y
estrategias de alto nivel para crear un proceso capaz de escapar de ptimos
locales y realizar una bsqueda robusta en el espacio de soluciones
factibles del problema [10].
1.2. Los Proyectos
Los proyectos han existido desde el inicio de la humanidad pero solo hasta despus
de la segunda guerra mundial fueron reconocidos como tal y organizados dentro de
una disciplina conocida como la Administracin de Proyectos [7]. Los proyectos
suelen ser muy diversos en cuanto a su naturaleza, tamao y alcance, siendo
ejemplos de los mismos:
Lanzamiento del trasbordador NASA.
Construir un bote.
Construir un hospital.
Remodelacin de un edificio.
Planear una fiesta o una boda. Organizar olimpiadas.
Desarrollar un nuevo software.
Obtener un ttulo en Logstica y Transporte.
Escribir la tesis de grado.
1.2.1. Qu es un proyecto?
Un proyecto es una secuencia bien definida de eventos con un principio y un final
identificados y se centra en alcanzar un objetivo claro, y es responsabilidad del
director del proyecto llevar a ste hasta la meta basndose en unos parmetros
establecidos, tales como tiempo, costo y recursos, manteniendo siempre el nivel de
calidad especificado [8].
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
16/58
-16-
1.2.2. Las Tareas o Actividades
Todo proyecto puede ser dividido en una serie de tareas bien definidas. Cada tareatiene un cierto tiempo para ser completada. Algunas tareas pueden ser realizadas
simultneamente, mientras que otras necesitan ser ejecutadas en una secuencia
especifica. Tambin puede necesitar definir algunos hitos, u objetivos intermedios,
que pueden ser utilizados para controlar el progreso del proyecto antes de que
finalice. Adems, cada tarea requiere de la disponibilidad de los recursos
adecuados, tales como personas, herramientas e instalaciones [8].
Las tareas, tambin llamadas pasos, requeridas para completar un proyecto definenel mbito del objetivo del proyecto. La identificacin de las tareas es un paso muy
importante en la planificacin de un proyecto. Teniendo presente el objetivo del
proyecto, se comienza por identificar los elementos o fases principales del proyecto.
Una vez identificados, se comienza a descomponer cada elemento o fase. Algunas
tareas se ejecutan en forma secuencial, mientras otras se pueden realizar
simultneamente. Por ejemplo, los cimientos de un edificio tienen que construirse
antes que las paredes, as que la tarea de cimentacin se lista antes que la tarea
paredes. Por otra parte, la instalacin de las conducciones de agua y electricidadpueden hacerse probablemente al mismo tiempo, por lo que no importa cual de
estas tareas se liste primero [8].
El tiempo necesario para realizar una tarea es su duracin. Al crear la lista de
tareas, tambin hay que identificar las duraciones. Generalmente, para la
estimacin de duracin de tareas se recurre a cuatro fuentes:
Informacin histrica.
Participacin.
Intuicin
Indeterminacin.
La duracin ms fiable se obtiene a partir de datos histricos recogidos por su
empresa en una consultora reconocida, la siguiente duracin ms fiable se obtiene
mediante la participacin de alguien que ha realizado tareas similares anteriormente
[8].
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
17/58
-17-
1.2.3. Los Recursos
Los recursos, segn la teora de la Administracin de Proyectos, son los factoresproductivos necesarios para realizar una actividad, no se consumen con su uso ni
se incorporan al producto resultante de la actividad. Al trmino de la tarea quedan
disponibles para ser utilizados por otras tareas o en otros proyectos. Algunos
ejemplos de recursos son la mano de obra, los equipos y las herramientas [9].
1.3. Descripcin del Problema
En el presente trabajo abordaremos el problema particular de una empresa delsector industrial metalmecnico de la ciudad de Guayaquil. Esta empresa se dedica
a la planificacin, construccin e instalacin, as como tambin al mantenimiento de
una gran variedad de estructuras metlicas y equipos conforme lo deseen sus
clientes. Entre los principales productos que ofrece estn:
Fabricacin y montaje de equipos industriales y agropecuarios como lo son
bandas transportadoras, calderos, etc.
Fabricacin y montaje de estructuras metlicas arquitectnicas como lo son
estructuras para edificios, cerramientos, etc. Mantenimiento y reparacin de maquinaria y equipos industriales como lo
son sopladores, compresores de aire industrial, etc.
El problema de la empresa aparece en los altos costos de produccin que tienen al
momento de ejecutar una orden de trabajo y a la imposibilidad de cumplir con el
tiempo de entrega prometido a sus clientes. Estos problemas ocasionan que la
compaa sea incapaz de ofertar al mercado precios y fechas de entrega
competitivos provocando que los mrgenes de ganancia de la organizacin no sean
muy altos, tener pocos clientes y como consecuencia final, grandes periodos en
donde no tienen trabajo por lo cual lo ocupan dando mantenimiento a sus propias
maquinarias para no tener el personal sin trabajo.
Esta situacin se da por el bajo nivel de eficiencia que tienen las planificaciones que
se realizan de los proyectos u rdenes de trabajo en el Departamento de Proyectos
de la empresa. Los encargados de este departamento no disponen de las
herramientas efectivas para poder elaborar planificaciones adecuadas y en un corto
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
18/58
-18-
periodo de tiempo. El departamento actualmente dispone de dos computadores y el
software Microsoft Project as como los conocimientos adquiridos en su formacin
profesional para la administracin de proyectos.
La manera en que se efecta la planificacin de la orden de trabajo empieza con la
llegada de la misma al departamento de proyectos, la cual no necesariamente ha
sido contratada por el cliente, sino que l ha convocado una licitacin para
seleccionar la empresa que se har cargo del proyecto y por consiguiente nuestra
empresa debe elaborar una oferta en un periodo determinado de tiempo de manera
que pueda competir con las ofertas que presenten las dems industrias del sector.
La mayora de las rdenes de trabajo que llegan a la empresa requieren pasar
primero por una licitacin antes de ser finalmente adjudicadas a la misma, mientras
que una minora es directamente contratada sin licitacin previa.
Las rdenes de trabajo que usualmente requieren licitacin son las construcciones
de estructuras por su largo periodo de duracin y por el costo implicado en la
elaboracin de la misma. Las rdenes de trabajo para mantenimiento y reparacin
de equipos y maquinarias no suelen requerir tal licitacin y el cliente contratadirectamente a la empresa que sea de su agrado. Principalmente, el mayor margen
de ganancias est en ganar las licitaciones para las construcciones por su alto valor
de mercado por lo cual el gerente de proyectos debe ser capaz de disponer de
herramientas eficaces para poder crear el conocimiento que le permita a nuestra
empresa adjudicarse dichas obras. Con esto se recalca una vez ms la importancia
que tienen los gerentes de nivel medio en la elaboracin de conocimiento y nuevas
formas de administrar eficazmente los recursos de la empresa.
Una vez que la orden de trabajo ha llegado al departamento de proyectos con las
especificaciones del producto solicitado por el cliente, se procede a elaborar la
planificacin del proyecto, siendo el proyecto en este caso la elaboracin del
producto solicitado. El personal del departamento empieza con la primera etapa de
la planificacin desmenuzando el proyecto en las tareas respectivas, estimando sus
duraciones y la cantidad de recursos que se necesitarn para la realizacin de las
mismas. Esta etapa depende en gran medida de los conocimientos conceptuales de
los planificadores y en su capacidad de abstraccin.
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
19/58
-19-
La siguiente etapa es la programacin del proyecto la cual consiste en determinar
en qu orden se ejecutarn las tareas del proyecto respetando las precedencias
que se establecieron en la primera etapa y cmo asignaremos los recursos a las
mismas considerando que tenemos una cantidad mxima determinada para cada
recurso. La programacin del proyecto termina cuando tenemos el calendario de
ejecucin de las tareas y las asignaciones de recursos realizadas. Este calendario
es conocido como Diagrama de Gantt, un ejemplo tpico se muestra en la figura 2.
Figura 2: Diagrama de Gantt
La buena o mala elaboracin de este calendario repercutir sustancialmente en la
duracin total del proyecto y por consiguiente en el tiempo de entrega del producto
final al cliente. En este punto es donde entra en juego el software Microsoft Project
y la solucin que desarrollaremos ms adelante.
Microsoft Project es un software bajo licencia producido por la Corporacin
Microsoft siendo su principal funcin brindar soporte en la gestin y control de
proyectos. Este programa permite al planificador ingresar las tareas que formanparte del proyecto, sus duraciones, asignar los recursos que consumen y los costos
de los mismos. Elabora el diagrama de Gantt basado en las relaciones de
precedencia entre las tareas y permite determinar en primera instancia una cota
inferior para la fecha de terminacin del proyecto.
Microsoft Project no es un software de optimizacin por lo que la programacin que
en l se efecte no es necesariamente una solucin ptima del problema. Adems
no considera las limitantes impuestas por la escasez de los recursos por lo que elplanificador deber revisar cuidadosamente que la programacin no rebase la
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
20/58
-20-
capacidad de los recursos disponibles. El rebasar estas capacidades se conoce
como sobreasignacin.
Las sobreasignaciones de los recursos pueden ser detectadas usando el software
pero ser el planificador quien deber tomar las decisiones de cmo las va a
eliminar. Cuando existe una sobreasignacin es muy probable que la duracin del
proyecto se extienda. La teora de administracin de proyectos ofrece las siguientes
recomendaciones para eliminar las sobreasignaciones:
Cambiar las asignaciones de tarea del recurso sobreasignado.
Asignar el recurso sobreasignado para que en algunas tareas trabaje atiempo parcial.
Reducir la extensin de la tarea, de manera que sea posible reducir el
nmero de horas de trabajo necesarias para completarla.
Permitir que el recurso sobreasignado trabaje ms horas aumentando las
horas de trabajo del recurso.
Resolver los conflictos de recursos automticamente, o bien manualmente,
redistribuyendo la programacin.
La problemtica principal de estas recomendaciones radica en que no siempre es
factible aplicarlas ya sea por limitaciones de presupuesto, por las leyes vigentes en
el pas, por los costos implicados, etc.
La opcin de redistribuir la programacin es la ms indicada en la mayora de los
casos, pero como podemos notar en el enunciado, el software ofrecido por
Microsoft redistribuye esta planificacin atrasando la ejecucin de las tareas que
provocan la sobreasignacin del recurso. Cambiar el tiempo de inicio de las tareasque componen el proyecto sin un procedimiento adecuado no necesariamente
determina la mejor solucin al problema.
En el manual de usuario de Project se menciona claramente que el planificador
debe volver a revisar detalladamente la programacin una vez se ha efectuado la
redistribucin de la misma para asegurase que la nueva planificacin es la deseada
o es aceptable para la empresa. As tambin permite que sea el planificador quien
manualmente retrase las tareas pero miles de estudio en el campo de la
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
21/58
-21-
Investigacin Operativa han demostrado que las decisiones tomadas usando el
sentido comn o como se suele decir, las decisiones tomadas usando papel y lpiz
no siempre son las mejores.
En el presente trabajo se desarrollar una aplicacin que cubra la debilidad que
presenta Microsoft Project, elaborando un calendario de ejecucin para el proyecto
que considere todas las limitantes presentes en el problema como lo son las
restricciones de precedencia y la escasez de los recursos obteniendo la fecha de
entrega del proyecto terminado ms prxima posible. As mismo esta aplicacin
deber ser sencilla de tal manera que el usuario solo deba ingresar todos los datos
referentes al proyecto y el programa determine cul es la mejor programacin para
el mismo sin necesidad de la intervencin humana en el proceso de optimizacin.
Al mejorarse el proceso de planificacin del proyecto, tambin se puede atender a
una mayor cantidad de ofertas y obtener mejores fechas de entrega, reducir los
costos tanto operativos como de recursos, mejorando la imagen y competitividad de
la empresa en el mercado.
1.4. Objetivos
Los objetivos que se persiguen con la elaboracin del presente proyecto son los
siguientes:
Conocer el marco que engloba la planificacin y programacin de proyectos
en la vida de una empresa. Esto es mencionar cules son las situaciones
que derivan en la elaboracin de un proyecto.
Disear un algoritmo gentico que permita elaborar el calendario deejecucin de un proyecto considerando todas las restricciones del problema
minimizando el tiempo de duracin del proyecto.
Que la solucin aportada por el algoritmo gentico diseado si bien no es la
ptima, sea la mejor posible en cuanto a la complejidad del proyecto.
Dar a conocer la necesidad que se tiene de desarrollar programas de
optimizacin para as mejorar la productividad de las empresas de la ciudad
de Guayaquil.
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
22/58
-22-
2. Marco Terico
2.1. Introduccin
El problema considerado en este trabajo es el de secuenciacin de un proyecto con
limitacin de recursos y sin posibilidad de interrupcin del proceso de las
actividades que lo componen una vez iniciadas, y las relaciones de precedencia
entre las tareas son del tipo fin inicio, que quiere decir que una actividad no puede
iniciar mientras todas sus predecesoras no hayan concluido. Tambin suponemos
que la duracin de las actividades, los requerimientos de recursos y la
disponibilidad de cada tipo de recurso son cantidades no negativas, conocidas y
constantes a lo largo del tiempo en el que se realiza el proyecto. El objetivo es
minimizar el tiempo total de ejecucin [1].
2.2. Definicin Matemtica del RCPSP
El Problema de Secuenciacin de Proyectos (RCPSP) puede ser definido
matemticamente de la siguiente manera:
Un proyecto consiste en un conjunto { }0 1 2 1, , ,..., nA a a a a += de actividades y un
conjunto { }1 2, ,..., mR r r r= de recursos renovables limitados. Las actividades 0a y
1na + son ficticias, tienen una duracin de cero unidades de tiempo, no consumen
ningn recurso y representan el inicio y fin del proyecto. Luego cada actividad ia
para 1, 2,...,i n= tienen una duracin 0id y consumen una cantidad 0ijq de
los recursos, siendo 0jQ la disponibilidad mxima de cada recurso jr R en
cada instante de tiempo. Adicionalmente existen restricciones de precedencia para
las actividades del proyecto de tal manera que cada actividadi
a no puede ser
iniciada mientras todas sus actividades predecesoras iP no hayan sido finalizadas.
De la misma manera se suele denotar iS como el conjunto de actividades
sucesoras de la actividadi
a para 0,1,..., 1i n= + . El objetivo consiste en encontrar
un conjunto { }0 1 2 1, , ,..., nT t t t t += de tiempos de inicio de cada actividad que cumpla
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
23/58
-23-
con las restricciones de precedencia y disponibilidad de los recursos, y minimice el
tiempo total de duracin del proyecto.
2.3. Modelo Matemtico del RCPSP
SeatA el conjunto de actividades en proceso en el tiempo t, entonces el RCPSP
puede ser modelado matemticamente de la siguiente manera:
1nMin z t += ( )1
.St
i p pt t d> + ,i ia A p P ( )2
i t
ij j
a A
q Q
, 0jr R t ( )3
La funcin objetivo (1) busca minimizar el tiempo de inicio de la actividad ficticia que
representa el fin del proyecto, la ecuacin (2) garantiza que se cumpla las
restricciones de precedencia de las actividades y la ltima (3) asegura que no sesobrepase la disponibilidad mxima de los recursos en cada instante de tiempo.
2.4. Grafo de Precedencia del RCPSP
Se define el grafo de precedencia ( ),G A E donde el conjunto de nodos A son las
actividades del proyecto. El conjunto de aristas Eposee un arco ( ),i ja a si existe
una relacin de precedencia entre la actividad ia y la actividad ja para i j . Elcosto de cada arco es la duracin de la actividad representada en el vrtice inicial
[1].
El grafo G es dirigido y acclico, y puede ser utilizado para calcular el camino ms
largo entre cualquier par de vrtices [1].
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
24/58
-24-
2.5. Ejemplo del RCPSP
A continuacin presentamos un ejemplo del RCPSP: Se tiene un proyecto con 12tareas y 2 recursos
1ry
2r con disponibilidades de 5 y 6 unidades respectivamente.
En la tabla 1 se detallan los datos relevantes a la duracin de las tareas y a la
cantidad de recursos consumidos por cada una de ellas mientras que en la figura 3,
se muestran las relaciones de precedencia entre las actividades.
0 1 2 3 4 5 6 7 8 9 10 11 12 13
1
2
0 3 4 4 2 1 3 1 3 2 2 2 1 0
0 3 2 1 0 3 3 2 4 4 2 3 2 0
0 2 4 4 3 2 0 3 3 0 2 0 4 0
i
i
i
i
a a a a a a a a a a a a a a a
d
q
q
Tabla 1: Un Proyecto con 12 Tareas y 2 Recursos
Figura 3: Diagrama de Precedencia
Una posible solucin para este ejemplo est dada en la tabla 2, en la cual se
indican los tiempos de inicio de cada actividad obtenindose un tiempo total deejecucin de 24 das.
1 2 3 4 5 6 7 8 9 10 11 12
0 3 3 11 11 13 13 16 19 21 23 23
a a a a a a a a a a a a
Tabla 2: Tiempos de Inicio de las Actividades del Proyecto
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
25/58
-25-
2.6. Complejidad Computacional
De acuerdo con la teora de la complejidad computacional, el RCPSP es uno de losms difciles de resolver entre los problemas de optimizacin combinatoria. El
RCPSP pertenece a la clase de problemas NP - harden sentido estricto [2].
2.7. Mtodos Heursticos utilizados para la Resolucin del RCPSP
2.7.1. Esquemas Algortmicos
Kelley y Walker distinguen dos formas bsicas de generar una secuencia posible,que denominan en serie y en paralelo. En ambos procedimientos, una vez que una
actividad ha sido introducida en la secuencia, nunca es resecuenciada [1].
La secuenciacin en serie comienza numerando los vrtices de forma que para
cada arco del grafo de precedencia, su vrtice inicial tiene un nmero menor que su
vrtice final. Este esquema de numeracin tiene la propiedad de que si se
secuencian las actividades en el orden indicado por su nmero, entonces ninguna
actividad aparecer antes que ninguna de sus predecesoras. Se puede construiruna secuencia posible considerando las actividades en este orden y secuenciando
cada una de ellas tan pronto como las relaciones de precedencia y las restricciones
sobre los recursos lo permitan. El procedimiento de numeracin no es, en general,
nico. El orden entre las mismas puede obtenerse de forma aleatoria o mediante
una funcin de prioridad tal como el requerimiento de recursos, duracin de las
actividades, etc. Cada regla de prioridad define un algoritmo en serie diferente [1].
En la secuenciacin en paralelo se construye una secuencia posible procediendohacia delante en el tiempo. En cada momento durante la construccin, se determina
el conjunto de actividades que pueden ser secuenciadas de acuerdo con las
restricciones de precedencia y de recursos. Este conjunto se ordena mediante una
regla de prioridad y las actividades se secuencian en ese orden mientras no se
supere la capacidad de los recursos y as sucesivamente. Si las actividades reciben
la prioridad independientemente de la secuencia ya existente, el algoritmo se
denomina esttico. Caso contrario se denomina dinmico [1].
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
26/58
-26-
Una forma completamente diferente de obtener una secuencia posible es el mtodo
de muestreo. Los mtodos de muestreo forman un conjunto de secuencias posibles
usando tcnicas de aleatorizacin y eligen la mejor secuencia obtenida [1]. La
desventaja de utilizar este mtodo radica en que no se dirige la bsqueda,
simplemente se toma el mejor individuo de un vecindario y obtenemos ptimos
locales que no necesariamente estn cerca del ptimo global.
2.7.2. Reglas Heursticas de Prioridad
Segn un estudio realizado por Valds y Tamarit en 1989, acerca de la eficiencia
relativa de los principales algoritmos conocidos, se obtuvo una clasificacin
sustancialmente homognea de seis reglas que pueden considerarse las ms
eficientes. Estas reglas tienen en comn usar de forma correcta informacin global
acerca del proyecto y difieren en el tipo de informacin utilizada acerca de la
estructura del grafo, de las caractersticas de las actividades y de los recursos [1].
En este trabajo mencionaremos de forma breve, las cuatro mejores reglas
encontradas:
2.7.2.1. MTS (Most Total Succesors)
Esta heurstica elige primero aquella actividad con mayor nmero de sucesores,
inmediatos o no, ya que el retraso de dicha actividad los retrasa a todos ellos [1].
Basados en el ejemplo anterior, la actividad con el mayor nmero de sucesores
sera 1a con un total de 11 sucesores de los cuales son inmediatos 3a y 4a .
2.7.2.2. GRPW (Greatest Rank Positional Weight)
Esta regla selecciona las actividades de acuerdo con su peso posicional, obtenido
sumando a la duracin de la actividad, la duracin de todos sus sucesores [1].
Basados en el ejemplo ya mencionado con anterioridad, el peso posicional de la
actividad1
a sera 21 mientras que el peso posicional de la actividad2
a sera 9.
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
27/58
-27-
2.7.2.3. LST (Latest Start Time)
Esta regla secuencia en primer lugar aquella actividad que tiene un menor tiempo
mximo de inicio (LST), obtenido mediante el mtodo del Camino Crtico. El LST da
una medida de la urgencia de empezar la actividad debido a que si sta se
secuencia en un tiempo posterior a su LST se producir un retraso en tiempo total
de ejecucin del proyecto, respecto a la solucin dada por el mtodo del Camino
ms Largo. La mxima prioridad se dar a la actividad que produce ms retraso [1].
Para poder dar un ejemplo de esta regla de prioridad primero tomaremos en
consideracin la informacin dada en la tabla 3.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
0 0 0 0
3 0 0 0
4 0 8 8
4 3 3 0
2 3 7 4
1 7 10 3
3 7 7 0
1 5 9 4
3 8 11 3
2 10 10 0
2 12 12 0
2 14 14 0
1 14 15 1
0 16 16 0
i ia d EST LST Hol
a
a
a
a
a
a
a
a
a
a
a
a
a
a
Tabla 3: Datos Adicionales del Proyecto
En esta tabla se dan a conocer los datos referentes al tiempo de inicio ms
temprano (EST), el tiempo de inicio ms tardo (LST) junto con la holgura de cada
actividad. Esta holgura puede ser encontrada restando el EST del LST.
Definicin:El Camino Crtico o Ruta Crtica de un proyecto est conformado por
aquellas actividades que tienen holgura igual a cero.
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
28/58
-28-
Definicin: El mtodo del Camino ms Largo consiste en hallar el camino ms
largo que exista entre los vrtices que representan a las actividades ficticias de
inicio y fin del proyecto.
Entonces si tuvisemos que aplicar la regla de prioridad LST entre las tareas5
a ,6
a
y7
a , seleccionaramos la actividad6
a por tener el LST de menor valor entre las
tres.
2.7.2.4. LFT (Late Finish Time)
Es similar a la regla anterior, pero se tiene en cuenta la duracin de la actividad [1].
Se selecciona la actividad que tiene el menor tiempo de finalizacin. Para calcular
el LFT de cada tarea se suma el LST con la duracin de la misma.
En nuestro ejemplo, el LFT de las tareas5
a ,6
a y7
a sera de 11, 10 y 10
respectivamente. Seleccionamos de manera indiferente entre las actividades6
a y
7a por tener el valor del LFT ms bajo.
2.8. Algoritmos Genticos
2.8.1. Filosofa de los Algoritmos Genticos
Los algoritmos genticos son mtodos adaptativos que pueden usarse para
resolver problemas de bsqueda y optimizacin. Estn basados en el proceso
gentico de los organismos vivos. A lo largo de las generaciones, las poblaciones
evolucionan en la naturaleza acorde con los principios de la seleccin natural y lasupervivencia de los ms fuertes, postulados por Charles Darwin (1859), un
esquema simplificado se muestra en la figura 4. Por imitacin de este proceso, los
algoritmos genticos son capaces de ir creando soluciones para problemas del
mundo real. La evolucin de dichas soluciones hacia valores ptimos del problema
depende en buena medida de una adecuada codificacin de las mismas [3].
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
29/58
-29-
Figura 4: Proceso Evolutivo de las Especies
En la naturaleza, los individuos de una poblacin compiten entre si en la bsquedade recursos tales como comida, agua y refugio. Incluso los miembros de una misma
especie compiten a menudo en la bsqueda de un compaero. Aquellos individuos
que tienen ms xito en sobrevivir y en atraer compaeros tienen mayor
probabilidad de generar un gran nmero de descendientes. Por el contrario,
individuos poco dotados producirn un menor nmero de descendientes. Esto
significa que los genes de los individuos mejor adaptados se propagaran en
sucesivas generaciones hacia un nmero de individuos creciente. La combinacin
de buenas caractersticas provenientes de diferentes ancestros, puede a veces
producir descendientes "superindividuos", cuya adaptacin es mucho mayor que la
de cualquiera de sus ancestros. De esta manera, las especies evolucionan logrando
caractersticas cada vez mejor adaptadas al entorno en el que viven [3].
El poder de los algoritmos genticos proviene del hecho de que se trata de una
tcnica robusta, y pueden tratar con xito una gran variedad de problemas
provenientes de diferentes reas, incluyendo aquellos en los que otros mtodos
encuentran dificultades. Si bien no se garantiza que el algoritmo gentico encuentre
la solucin ptima del problema, existe evidencia emprica de que se encuentran
soluciones de un nivel aceptable, en un tiempo competitivo con el resto de
algoritmos de optimizacin combinatoria [3].
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
30/58
-30-
2.8.2. Ventajas de un Algoritmo Gentico
Las principales ventajas que poseen los algoritmos genticos son: Son intrnsecamente paralelos. La mayora de los otros algoritmos son en
serie y slo pueden explorar el espacio de soluciones en una direccin al
mismo tiempo, y si la solucin que descubren resulta subptima, no se
puede hacer otra cosa que abandonar todo el trabajo hecho y empezar de
nuevo. Sin embargo, ya que los algoritmos genticos tienen descendencia
mltiple, pueden explorar el espacio de soluciones en mltiples direcciones
a la vez. Si un camino resulta ser un callejn sin salida, pueden eliminarlo
fcilmente y continuar el trabajo en avenidas ms prometedoras, dndolesuna mayor probabilidad en cada ejecucin de encontrar la solucin [3].
Debido al paralelismo que les permite evaluar implcitamente muchos
esquemas a la vez, los algoritmos genticos funcionan particularmente bien
resolviendo problemas cuyo espacio de soluciones potenciales es realmente
grande demasiado vasto para hacer una bsqueda exhaustiva en un
tiempo razonable [3].
Los algoritmos evolutivos han demostrado su efectividad al escapar de los
ptimos locales y descubrir el ptimo global incluso en paisajes adaptativosmuy escabrosos y complejos [3].
2.8.3. Esquema General de los Algoritmos Genticos
Los algoritmos genticos tienen el siguiente esquema:
Existe una poblacin inicial de individuos con determinadas caractersticas.
Los individuos se cruzan entre s dando origen a los habitantes de la
siguiente generacin. Estos habitantes heredarn las caractersticas de sus padres y si stas son
beneficiosas se irn propagando a travs de las generaciones futuras, caso
contrario desaparecern por el proceso de seleccin natural que indica que
slo las especies ms fuertes sobreviven.
Durante el proceso de cruce puede darse la mutacin del nuevo individuo, si
esta mutacin es mala seguramente el nuevo hijo morir al nacer, pero si es
beneficiosa se ir transmitiendo en las generaciones futuras. La mutacin es
un proceso mediante el cual se altera de forma significativa el cdigo
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
31/58
-31-
gentico del individuo otorgndole nuevas caractersticas que nadie posee
en la poblacin, pero al mismo tiempo ocurre con muy poca frecuencia.
Posiblemente en una especie determinada uno de cada milln de habitantes
ha mutado, el proceso se representa en la figura 5 y 6.
Figura 5: Esquema de un Algoritmo Gentico
Figura 6: Proceso del Algoritmo Gentico
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
32/58
-32-
2.8.4. Analoga con los Problemas de Optimizacin
Dado un problema de optimizacin, los algoritmos genticos tienen la siguientesecuencia:
1. Codificar el individuo ( )1,..., nx x representndolo como un cromosoma,
en donde es el espacio de soluciones factibles del problema.
2. Seleccionar el tamao de la poblacin inicial. Este es un parmetro clave en
el funcionamiento del algoritmo por lo que debe ser calibrado
adecuadamente.
3. Crear un conjunto de individuos como poblacin inicial conforme al
parmetro establecido en el punto 2.
4. Aplicar el proceso de seleccin natural que consiste en, mediante algn
criterio formar las parejas de individuos con las cuales se realizarn los
cruces. Se pueden escoger las parejas para la reproduccin
estocsticamente.
5. Crear los criterios para realizar el cruce. El ms usado es el punto de cruce.
Mientras mayor sea el nmero de puntos de cruce, mayor ser el tiempo
requerido para la resolucin del problema.
6. Cruzar las parejas de acuerdo al criterio seleccionado dando origen a la
nueva poblacin.
7. Delimitar la nueva poblacin al mismo tamao de la poblacin inicial
escogiendo los mejores nuevos individuos. En ocasiones se suele permitir
pertenecer a la nueva poblacin individuos con ciertas debilidades para que
en la prxima generacin se puedan aprovechar fortalezas que tal vez los
individuos mejor adaptados no poseen.
8. Aplicar la mutacin. La mutacin clsica es el cambio de alelos. Se debe
aplicar a menos del 1% de la poblacin. Tambin se puede seleccionar
estocsticamente si se muta o no a cada individuo.
9. Actualizar Poblacin Inicial = Nueva Generacin.
10. Si se cumple el criterio de parada, finalizar y presentar la mejor solucin
encontrada. Caso contrario volver al paso 4. El criterio de parada es libre.
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
33/58
-33-
3. Diseo del Algoritmo Gentico para el RCPSP
La primera etapa en la elaboracin de un algoritmo es crear un diseo global de su
estructura y funcionamiento. Por este motivo el diseo de nuestro algoritmo consta
de las siguientes partes:
3.1. Codificacin
La codificacin de los individuos (cromosomas) de la poblacin es un vector
( )0 1 1, ,...,
na a a + que indica el orden en el cual se van a ubicar las tareas dentro delcalendario. Esta codificacin nos permite dar simplicidad al algoritmo.
3.2. Elaboracin del Cromosoma
Para elaborar el cromosoma utilizamos la secuenciacin en serie considerando los
siguientes aspectos:
1. Se secuencia una sola tarea en cada iteracin.
2. Se tienen dos conjuntos disjuntos en cada iteracin: el conjunto de tareassecuenciadas y las tareas elegibles. El conjunto de tareas secuenciadas
contiene las actividades ya pertenecientes al cromosoma hasta dicha etapa
mientras que el conjunto de tareas elegibles posee todas las posibles tareas
a ser secuenciadas en la siguiente etapa. Una tarea es elegible si todos sus
predecesores ya han sido secuenciados.
3. Se selecciona una actividad del conjunto de tareas elegibles segn el criterio
de prioridad establecido. En este trabajo se estableci que la seleccin de
esta actividad ser realizada de forma aleatoria para as poder crear una
gran diversidad de individuos. Adicionalmente, en este punto se puede
implementar cualquiera de las reglas de prioridad mencionadas en los
apartados anteriores pero la desventaja de usarlas radica en que siempre
generan la misma secuenciacin dificultando el trabajo de creacin de la
poblacin inicial.
-
7/25/2019 ImplementacYion de Un AG Para El RCPSP
34/58
-34-
Al finalizar este procedimiento se obtiene una secuenciacin que garantiza el
cumplimiento de todas las restricciones de precedencia. Resumiendo obtenemos el
siguiente algoritmo:
( )
{ }
( )
{ }
{ }
0
.
1
/i i
CrearCromosoma
Secd a
Mientras Secd n
Eleg a A P Secd
Seleccionar aleatoriamente una actividad a Eleg
Secd Secd a
FinMientras
FinCrearCromosoma
=
< +
=
=
3.3. Creacin de la Poblacin Inicial
Una parte fundamental de los algoritmos genticos es la generacin de la poblacin
inicial, a partir de la cual se originarn las siguientes generaciones. Una labor
importante es calibrar el tamao de la poblacin debido a que ste influye muy
significativamente en el tiempo de ejecucin del algoritmo. Para crear la poblacin
inicial se ejecuta el siguiente procedimiento:
( )
( )
{ }
./CrearPoblacionInicial tamao
PobIni
Mientras PobIni tamao
Individuo CrearCromosoma
PobIni PobIni Individuo
FinMientras
FinCrearPoblacionInicial
=