implementacyion de un ag para el rcpsp

Upload: alex-mantilla-rojas

Post on 01-Mar-2018

221 views

Category:

Documents


0 download

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

    =