METODOLOGÍA CIENTÍFICA EN BUSCA DE SOLUCIONES ÓPTIMAS CON APOYO A LA TOMA DE DECISIONES
Leobardo Álvarez guzmán Cruz Manuel Ramirez Martinez
Introducción a las redes de optimización Con estas aplicaciones mostrar de una manera clara el concepto y desarrollo de la programación dinámica que es un procedimiento diseñado básicamente, para mejorar la eficiencia de cálculo de la solución de ciertos problemas matemáticos, por consiguiente, más manejable. Sin embargo debemos destacar que el principio de optimizar ofrece una estructura bien definida para resolver el problema en etapas. El principio de optimizar se considera algunas veces demasiado poderoso para ser de utilidad en la práctica; pero aunque un problema se puede dividir adecuadamente en partes menores quizás aún no se pueda obtener una respuesta numérica, debido a la complejidad del proceso de optimización en cada etapa. No obstante, debemos señalar que a pesar de esta desventaja, la solución de muchos problemas se ha facilitado apreciablemente a través del uso de la programación dinámica. Los problemas de redes surgen en una gran variedad de situaciones. Las redes de transporte, eléctricas y de comunicaciones predominan en la vida diaria. La representación de redes se utiliza de manera amplia en áreas tan diversas como producción, distribución, planeación de proyectos, localización de instalaciones, administración de recursos y planeación financiera. En realidad, una representación de redes proporciona un poderoso apoyo visual y conceptual para mostrar las relaciones entre las componentes de los sistemas, de tal modo que se usa casi en todos los ámbitos científicos, sociales y económicos. Uno de los mayores desarrollos recientes en investigación de operaciones (IO) ha sido el rápido avance tanto en la metodología como en la aplicación de los modelos de optimización de redes. La aparición de algunos algoritmos ha tenido un efecto importante, al igual que las ideas de ciencias de la computación acerca de estructuras de datos y la manipulación eficiente de éstos. En la actualidad se dispone de algoritmos y paquetes de computadora que se usan en forma rutinaria para resolver problemas muy grandes que no se habrían podido manejar hace dos o tres décadas. Muchos modelos de optimización de redes son en realidad tipos especiales de problemas de programación lineal.
Contenido 1. Algoritmo Dijkstra •
Algoritmo Dijkstra de etiquetas, ruta mínima en red no orientada.
•
Ruta mínima, aplica el algoritmo de Dijkstra
•
Figura Red no orientada
•
¿Sabías que...?
2. Aplicación del algoritmo de Ford-Fulkerson •
Aplicación del algoritmo de Ford-Fulkerson en una red orientada de flujo máximo.
•
Flujo Máximo: algoritmo de Ford-Fulkerson
•
Red ejemplo, muestra etiquetas y flujo máximo
3. Método del camino crítico (CPM) Las técnicas de previsión y evaluación de proyectos (PERT) • •
Método del camino crítico (CPM) Aspectos generales de PERT.
•
Aspectos generales de CPM
•
Incertidumbre en una red PERT/CP
4. “Clasifica los problemas “ 5. “ Si de Métodos Hablamos” 6. Biografias •
Lester Randolph Ford jr
•
Delbert Ray Fulkerson
•
Edsger W. Dijkstra
•
Henry Gantt
7. Bibliografia
Algoritmo Dijkstra de etiquetas, ruta mínima en red no orientada.
El algoritmo de Dijkstra para ruta mínima utiliza la etiqueta general: ( # Identificación del nodo precedente, acumulación del costo) que se coloca en cada uno de los nodos de la red, ya sea con carácter permanente P o bien temporal t. Los pasos del algoritmo son los siguientes: 1. El nodo origen siempre se etiqueta con: ( -, 0 ) P 2. A partir del último nodo con etiqueta permanente, se etiquetan temporalmente (t) todos los nodos sin etiqueta permanente, conectados directamente al mismo. 3. Se inicia la revisión de las etiquetas temporales (t), en los nodos que tengan dos etiquetas eliminando la de costo mayor, a continuación se comparan las temporales que aún quedan, con el criterio de costo menor se elige una para permanencia. En caso de empate se hacen permanentes las que estén en esa condición. 4. Se repite el procedimiento desde el paso 2, mientras existan nodos t para hacerlos P y se termina ordenando en tabla, las n-1 rutas mínimas encontradas. Ruta mínima, aplica el algoritmo de Dijkstra La siguiente red es no orientada, con un total de ocho nodos de los cuales se fija como origen al nodo #8. Determine las rutas mínimas desde el origen hasta los 8 - 1 = 7 nodos restantes, utilizando el algoritmo de Dijkstra.
Figura Red no orientada Se inicia la aplicación del algoritmo Paso 1 colocando en nodo origen #8 la etiqueta ( -, 0 )P, el cual tiene como nodos directos a #5, #6 y #7; se procede en el Paso 2 al etiquetado temporal con: # 5, ( 8, 0 + 14 = 14 ) t; # 6, ( 8, 0+7 = 7 ) t; # 7, ( 8, 0 + 8 = 8 ) t; los otros nodos ( 1, 2, 3, 4 ) aún no se etiquetan. Sólo los nodos # 5, # 6 y # 7, tienen etiqueta temporal, en revisión de paso 3 resulta: mínimo costo respectivo (14, 7, 8) = 7 C 86 = 7, lo que significa que la etiqueta de nodo # 6 pasa a permanente escribiendo así: # 6, (8, 7) P Se repite desde Paso 2, partiendo de nodo # 6 (recién anotado P) que tiene como nodos directos a # 2, 3, 4, 5, 7 resultando las temporales t siguientes: #2,(6, 7+15=22); #3,(6, 7+8=15); #4,(6,7+13=20); #5,(6, 7+6=13); #7,(6,7+9 =16). En nodos: #5 y 7, se elimina (8,14)t y (6,16)t, pues tienen dos etiquetas. En paso 3 se revisa: mínimo costo en temporal (22,15, 20, 13, 8) = 8 C 87 = 8, significa que la etiqueta del nodo #7 debe pasar a permanente, anotando así: #7 ( 8, 8) P. Hasta ahora, los nodos #8, #6 y #7 tienen etiqueta permanente, los nodos restantes (excepto el #1) tienen etiqueta t temporal. Se inicia una nueva iteración del algoritmo de Dijkstra desde el paso 2, partiendo del nodo #7, último en pasar a permanencia, el cual tiene como único nodo directo el #4 (pues los nodos #6 y 8 ya tienen permanencia), procediendo con su etiqueta temporal #4, (7, 8+11=19) t. En primera revisión de paso3, resulta eliminada la etiqueta temporal #4, (6, 20) t. La siguiente revisión resulta: mínimo costo (22, 15, 19, 13) = 13 C 6 5 = 6, significa, la etiqueta de nodo #5 pasa a permanente señalando así: # 5 (6, 13 ) P. Para continuar conviene anotar que los nodos # 8, 6, 7, 5, tienen permanencia, los nodos # 2, 3, 4, tienen temporal, el nodo # 1 aún no se etiqueta. Partiendo del nodo # 5 se observa que su único nodo directo para etiqueta temporal es el # 2, ya que en los nodos # 6 y # 8, hay permanencia, entonces # 2, ( 5, 13 + 5 =18 ) t; Aquí mismo se elimina la temporal # 2 ( 6, 22 ) t; se procede a la revisión comparando temporales: mínimo costo (18, 15, 19 ) = 15 C 6 3 = 8, significa que la etiqueta en nodo #3 pase a permanente anotando: # 3 ( 6, 15 ) P. Ahora los nodos # 8, 6, 7, 5, y 3, tienen permanencia; los nodos # 2 y # 4, tienen temporal; el # 1 aún no se etiqueta. El nodo # 3, tiene directos a #1, #2, # 4 y quedan con t: # 1,(3, 15+7=22 ) t; # 2,( 3, 15+10=25) t; # 4(3, 15+4=19) t; toca eliminar la temporal duplicada # 2 ( 3, 25 ) t; con respecto al nodo # 4, se tienen dos etiquetas pero empatadas en el costo, por lo cual no hay eliminación y se conservan; se procede a la revisión de las temporales resultando como sigue: mínimo costo ( 22, 18, 19, 19 ) = 18 C 52 = 5, significa que la etiqueta del nodo # 2 debe hacerse permanente así: # 2 ( 5, 18 ) P. Se anota ahora que los nodos # 8, 6, 7, 5, 3, 2, ya tienen etiqueta permanente; los nodos # 1 y # 4, tienen temporal. Repitiendo con el paso 2, se etiqueta con temporal el nodo # 1, (2, 18+12=30) t, pues los nodos # 3, 5 y 6, también directos del # 2, ya tienen permanencia; esta última temporal se elimina por duplicidad en el nodo # 1 y se procede a la comparación: Mínimo costo (24, 19, 19)=19 C 7 4 = 11 y C 3 4 = 4, lo cual significa que la situación de empate resulta en dos rutas alternativas para llegar al nodo # 4 señalando con doble etiqueta permanente así: # 4 (3, 19) P y (7, 19) P.
Con excepción del nodo # 1, todos los nodos tienen carácter permanente, se procede a etiquetar temporalmente al nodo # 1, ( 4, 19 + 5 = 24 ) t; pero se elimina la misma etiqueta temporal #1(4,24)t por duplicidad y costo alto, quedando sola la etiqueta que se convierte a permanente en el nodo # 1: ( 3, 22 ) P. Se termina el algoritmo de Dijkstra cuando todos los nodos tienen etiqueta permanente. La solución del problema de ruta mínima para una red no orientada se puede completar resumiendo en forma tabular, las n-1 rutas determinadas. También deben señalarse las ramas resultantes de la aplicación del algoritmo en la misma red, tal como se muestra a continuación en el ejemplo Ruminod1 red no orientada de ruta mínima mostrando las etiquetas permanentes y temporales, resultado de la aplicación del algoritmo de Dijkstra. Las ramas en línea gruesa señalan la ruta mínima del origen #8 hacia cada nodo.
Figura muestra la solución del algoritmo de Dijkstra
¿Sabías que...? Este algoritmo como otros más se aplica en el Enrutamiento Dinámico de Cisco Vector distancia: Utilizan un algoritmo de trabajo conocido como Bellman-Ford Estos protocolos envían periódicamente actualizaciones de enrutamiento a todos sus vecinos. Esto lo hacen enviando un broadcast
con toda la tabla de enrutamiento. En el enrutamiento dinámico tenemos dos tipos: enrutamiento. Muchas veces conocidos como enrutamiento por rumor. Estado de Enlace: Utilizan el algoritmo de Dijkstra o SPF (Shortest Path First). Mantiene una base de datos con información completa de la topología de la red. La cual brinda un conocimiento total de las conexiones de routers que no se encuentran directamente conectados a las interfaces. Video https://www.youtube.com/watch?v=_Iktarf8RXM
Aplicación del algoritmo de Ford-Fulkerson en una red orientada de flujo máximo. La pequeña red de la figura está diseñada para la exposición e inicio en el conocimiento de los conceptos que se manejan en este modelo; el problema y el algoritmo que resuelve el flujo máximo de unidades en un sistema. Etiqueta en ramas: (Capacidad de flujo Fij, Unidades de flujo Xij) Etiquetas en nodos: Además de etiquetas en ramas, el algoritmo Ford-Fulkerson usa otra etiqueta en los nodos, útil al seguir la ruta del flujo. Es importante que desde ahora, el lector anote la diferencia y sobre todo que aprenda a usarlas.
Figura Red Viendo de lado derecho de etiquetas: fluye Xij = 1 unidad por ruta O –R –S -T quedando saturada al ocupar toda la capacidad. Estado de la red ejemplo. Rama OR, etiqueta (0, 1), significa: capacidad FOR = cero, flujo XOR = 1(saturada) Rama RS, etiqueta (0, 1), significa: capacidad FRS = cero, flujo XRS = 1(saturada) Rama ST, etiqueta (0, 1), significa: capacidad FST = cero, flujo XST = 1(saturada) Rama RT, etiqueta (3, 0), significa: capacidad FRT = 3, flujo XRT = 0 (no saturada) Rama OS, etiqueta (3, 0), significa: capacidad FOS = 3, flujo XOS = 0 (no saturada) Rama SR, etiqueta (1, 0), significa: capacidad FSR = 1, flujo XSR = 0 (no saturada)
Un algoritmo aplicable a este problema lo desarrollaron Ford y Fulkerson, para redes orientadas, pero la rama ( R )-( S ) no orientada, se puede convertir a dos ramas en dirección opuesta con la misma capacidad, cumpliendo así el requisito de red estrictamente orientada como se vé enseguida:
Figura. Red ejemplo se convierte en orientada, con ramas R -S y S -R unidireccionales, vea a derecha en etiquetas, pasó 1 unidad por ruta O –R –S -T. Antes de aplicar el algoritmo de Ford-Fulkerson, se observa la situación de la red, pues ya paso una unidad por O –R –S -T; en cambio por O –S –R -T no ha pasado flujo, lo cual se ve en etiquetas de ramas cuyo significado ya se anotó al inicio del tema.
Flujo Máximo: algoritmo de Ford-Fulkerson Este algoritmo fue creado por sus autores para el tratamiento del problema de flujo máximo; considera para los nodos uno de los tres siguientes estados: No etiquetado, etiquetado y no explorado, etiquetado y explorado. Al iniciar el algoritmo, la red debe estar aislada y contener un sólo nodo origen y un sólo destino, los restantes deben funcionar como transbordo. Al empezar el algoritmo, todos los nodos de la red se consideran no etiquetados. Una etiqueta para los nodos, (diferente a la de ramas) consiste en un par de elementos, incluidos en un paréntesis, el elemento izquierdo es la identificación del nodo del cual proviene el flujo que llega al nodo que se está etiquetando; el elemento derecho de la etiqueta es el valor máximo de flujo que se puede enviar desde el nodo origen hasta el nodo que se está etiquetando. Paso 1.- Al nodo origen se le pone la etiqueta (-, ); significa, a izquierda no hay inversos, a derecha no hay límite de flujo. En este caso el nodo origen queda en el estado etiquetado y no explorado, todos los otros nodos, no están etiquetados.
Paso 2.- Considere un nodo K, con etiqueta y no explorado, a continuación, etiquete todos los nodos directos, no etiquetados, que estén conectados por una rama no saturada de flujo, o sea que X k j se ubique en el intervalo 0 <= X k j <= Fk j con la etiqueta ( K+, Mínimo { X o k, F k j - X k j }), en donde X o k, es el número a la derecha de la etiqueta del nodo K, el número j es el nodo que se etiqueta y que es directo de K ; F k j, es la capacidad de la rama entre el nodo ( K ) y el nodo ( j ); X k j, es el flujo correspondiente a la misma rama ( k, j ). Paso 3. - Para el mismo nodo K, etiquete los nodos vecinos inversos de K que tengan flujo X i k > 0, con la etiqueta ( K- , Mínimo { X o k, X i k }). Cuando se hallan etiquetado todos los nodos vecinos de K, (aunque algunos nodos vecinos directos no se hallan etiquetado por estar saturada la rama que los une a K, o algunos vecinos inversos no se hallan etiquetado porque no envían flujo hacia K ), en tal caso dicho nodo K se considera etiquetado y explorado. Paso 4.- Si el destino se etiquetó, vaya al paso 6, de lo contrario vaya al paso 5. Paso 5.- Busque un nuevo nodo etiquetado y no explorado; si hay, vaya al paso 2. Paso 6.- Se inicia interpretando la etiqueta recién registrada en el nodo destino T leyendo a la izquierda el nodo K+ que envía las unidades de flujo que se anotan a la derecha, usando la rama KT; retrocediendo por la ruta, entre los nodos destino T y origen O, conforme se indica en cada etiqueta de nodo. La identificación K + en la etiqueta de cualquier nodo j, significa que el flujo Xoj a la derecha de la misma fluyendo desde el origen, debe restarse a la capacidad F Kj en el lado izquierdo de la etiqueta en la rama K j y sumarse al flujo X kj a la derecha de la misma. Pero si la etiqueta de cualquier nodo j tiene K- , el flujo Xoj a la derecha debe sumarse a la capacidad F Kj en el lado izquierdo de la etiqueta de la rama K j y restarse al flujo Xkj a la derecha. A esto se le conoce como actualización de capacidades y flujos, procediendo desde el nodo destino a todo lo largo de la ruta elegida, hasta el nodo origen, en cada intento de pasar flujo. Se repiten los seis pasos anotados hasta que no sea posible encontrar una ruta para flujo adicional conectando los nodos origen y destino. Aplicación del algoritmo de Ford-Fulkerson a nuestro ejemplo mostrado en la figura. Como primer análisis de la red se mencionó que ya existe el flujo de una unidad a través de las ramas O –R –S -T, por lo cual se hace necesario verificar primero la red, para cumplir la propiedad de conservación de flujo en cada uno de los nodos (suma de flujo entrante igual a suma de flujo saliente). Luego se procede de acuerdo al paso 1 etiquetando el nodo origen O, con (-, ). Dejando a O en el estado de etiquetado, pero no explorado. Sigue el paso 2 en que se inicia la exploración; el recién etiquetado nodo O tiene como directos los nodos R y S, pero la rama O -R está saturada, significa que la capacidad F OR = 1unidad ya se ocupó, por lo tanto no se puede etiquetar R con respecto a O. El otro nodo directo es S, la rama OS no se ha usado y tiene la capacidad original F OS = 3 unidades, entonces la etiqueta en el nodo S es: ( O +, mínimo ( , 3-0)) = (O+, 3). Se cumple el paso 2 de exploración de directos y también el paso 3 de exploración de inversos porque O no los tiene, se pone una E que significa explorado a la etiqueta de O. El paso 4 es para comprobar que aún no se etiqueta el nodo destino y en el paso 5 se pide repetir regresando al paso 2. El único nodo con etiqueta sin explorar es S que tiene como directos R y T, pero éste no se puede etiquetar porque la rama S -T está saturada, la capacidad de una sóla unidad ya se ocupó; el directo R si se puede etiquetar con ( S +, mínimo ( 3, 1-0))= (S +, 1), ya que la rama SR tiene capacidad de
una sóla unidad. En el paso 3 se observa que el nodo S tiene dos nodos inversos que son O y R, pero ambos ya tienen etiqueta y no se debe duplicar; por lo tanto S queda como explorado y se distingue colocando la letra E en la etiqueta. Según el paso 5 hay que regresar al paso 2 y repetir a partir de un nodo con etiqueta sin explorar, el único es R, que tiene como directos a S y T, pero S ya tiene etiqueta; el directo T cuya rama R -T de conexión aún conserva la capacidad original, se puede etiquetar con (R+, mínimo ( 1, 3-0 )) o sea ( R +, 1 ). El nodo R tiene como inversos S y O, pero ambos tienen etiqueta, entonces R queda como explorado y se le señala con E. Al llegar al paso 4 se identifica al nodo T como terminal, pasando al 6, en donde se instruye a la actualización de la red, pues ya se logró transportar una unidad desde el origen O hasta el destino T. Se procede a descontar de las capacidades en ramas, la unidad pasada a lo largo de la ruta en retroceso, desde T hacia O, que se lee en el lado izquierdo de la etiqueta. Hasta aquí se completa una iteración del algoritmo F -F para intentar una transportación más con etiquetas nuevas comenzando por la etiqueta en el origen que siempre es la misma. En paso 2 se tienen dos directos R y S del nodo origen, la vía a R está saturada, no se etiqueta; al directo S se le pone (O+, min( , 3-1)) o sea ( O +, 2 ); el paso 3 no aplica porque O no tiene inversos quedando explorado. Se regresa al paso 2, el único con etiqueta y no explorado es S, sus directos son R y T, pero ambos no se pueden etiquetar como tales porque la rama que los conecta está saturada y así se cumple el paso 2. En el paso 3, se observa que S tiene dos nodos inversos O y R, pero O ya tiene etiqueta y no se duplica; el nodo R como inverso de S, ya envió una unidad de flujo que se puede regresar; es decir, es una decisión de arrepentimiento por unidades ya transportadas; de este modo se pone en R: (S-, min (2, 1)) = (S-, 1). Se cumplen los pasos 2 y 3 de exploración del nodo S distinguiendo con una E esa etiqueta. Regresando al paso 2, se identifica a R etiquetado y no explorado; sus directos son S y T, pero S tiene etiqueta y la de T es: (R+, min (1,3-1))= (R+, 1). Como ya se etiquetó el nodo destino T, se procede al ajuste de la unidad pasada leyendo el lado izquierdo de etiquetas iniciando en T, se lee 1 al lado derecho que se resta de la capacidad cuando la etiqueta tenga signo +, pero con signo -, se suma a la capacidad. Luego regresa al paso 2 a intentar pasar más unidades. Se quitan etiquetas anteriores, se etiqueta el origen con (-, ); luego su directo S con (O+, min ( , 3-2))=(O+,1), queda explorado el O. Ahora en paso 2 se observan directos de S que son R y T, ambos no se pueden etiquetar por saturación de sus vías; en cuanto a sus inversos en paso 3, el O ya tiene etiqueta y el R ya no le envía flujo, no hay unidades por regresar y por lo tanto no se etiqueta. Ya no es posible transportar más unidades y se termina la aplicación del algoritmo de Ford-Fulkerson.
Red solución.
Figura. Red ejemplo, muestra etiquetas y flujo máximo Como se puede observar, el flujo máximo a través de la red es de 3 unidades que se anotan distribuidas a través de las diferentes ramas. Teorema de Ford-Fulkerson: Corte mínimo = Flujo Máximo. Un corte en red debe formar dos conjuntos ajenos, tal que O y T estén separados. Valor de flujo máximo = Valor mínimo de todos los cortes de capacidades de la red
Figura Red ejemplo, muestra cortes del teorema Ford-Fulkerson.
Figura Tabla de cortes Ford-Fulkerson del ejemplo anterior. Considere la misma red de flujo del ejemplo, suponiendo una rama ficticia T -O, que por la propiedad de conservación de flujo sería la retroalimentación de flujo X TO a la misma.
Figura Rama X –T -O ficticia en la red ejemplo. Sea X i j = unidades transportadas del nodo i al nodo j, a través de la rama ( i, j ) XTO = unidades de flujo imaginarias de retroalimentación desde T hasta O. Función económica: Máximo Z = XTO
Método del camino crítico (CPM) Las técnicas de previsión y evaluación de proyectos (PERT) Existen diversas técnicas dentro de la investigación de operaciones, que ayudan a programar una serie de actividades complejas dentro de los procesos administrativos, dentro de los que pueden citarse. -
Método del camino critico (CPM) Las técnicas de previsión y evaluación de proyectos (PERT)
En general todas presentan los mismos principios, sin embargo, aportan diversos grados de información que pueden ser importantes en el desarrollo de proyectos: existen múltiples aplicaciones en las que están han sido de gran ayuda, por ejemplo: -
La planeación e introducción de un nuevo producto al mercado La instalación y corrección de algún defecto en un sistema de computadoras Proyectos de investigación y diseño El proceso de secuencia en trámites administrativos
Cada una posee varias características que son esenciales para la aplicación de alguna de las técnicas indicadas, por ejemplo: -
El proyecto consiste de un conjunto bien definido de tareas (o actividades) que al ser finalizadas señalan su término. Las actividades pueden ser iniciadas e interrumpidas independientemente la una de la otra, dentro de la secuencia dada. Los trabajos están ordenados, es decir, tienen que seguir una secuencia tecnológica
En particular nos concentramos en el método de PERT Y CPM introduciendo en primer término las gráficas de Gantt.
El diagrama de Gantt es una útil herramienta gráfica cuyo objetivo es exponer el tiempo de dedicación previsto para diferentes tareas o actividades a lo largo de un tiempo total determinado. A pesar de esto, el Diagrama de Gantt no indica las relaciones existentes entre actividades.
Creando diagramas de Gantt con herramientas informáticas Se puede producir un diagrama de Gantt con una hoja de cálculo de una manera muy sencilla, marcando determinadas celdas para formar la representación de cada tarea. Existen macros que automatizan esta elaboración en MS Excel y Libre/OpenOffice Calc. Sin embargo, existen herramientas de gestión de proyectos dedicadas a la planificación y seguimiento de tareas, que utilizan el diagrama de Gantt como pantalla principal. Se introducen las tareas y sus procesos son capaces de producir una representación de dichas tareas en el tiempo en el formato del gráfico de Gantt. También existen herramientas de licencia libre capaces de llevar a cabo dicho tipo de operación. Software libre para trabajar con diagramas de Gantt: OpenProj, KMKey, Plan, GanttProject, Planner, NavalPlan y ProjectLibre ASPECTOS GENERALES PERT PERT se desarrolló en la década de 1950 y se utilizó en forma amplia en la administración de proyectos militares de investigación y desarrollo. Su primera aplicación importante fue en el proyecto de los misiles Polaris para la U.S. Navy.El PERT fue desarrollado específicamente por el Departamento de la Defensa de los Estados Unidos de Norteamérica para dar apoyo a la planeación, programación y control de una gran cantidad de trabajos (actividades) asociados con el proyecto. PERT también se ha implementado y utilizado en la industria de la construcción, empresas industriales, instalaciones de activos fijos, el diseño de plantas, la planeación y la administración de programas de investigación y desarrollo, etc. Una característica principal del PERT es que puede manejar las incertidumbres que existen en los pronósticos de tiempos para determinar diversas tareas. ASPECTOS GENERALES CPM CPM fue desarrollado independientemente de PERT, pero está estrechamente relacionado con éste, se refiere básicamente a los intercambios entre el costo de un proyecto y su fecha de terminación. Se aboca a la reducción del tiempo necesario parta concluir una tarea o actividad, utilizando más trabajadores y/o recursos, lo cual, en la mayoría de los casos significa mayores costos. Con CPM, se supone que el tiempo necesario para concluir las diversas actividades del proyecto se conoce con certidumbre, al igual que la cantidad de recursos que se utilizan. Al principio ambas técnicas se utilizan en forma independiente, pero, en la actualidad, ha desaparecido en gran medida la distinción de uso entre PERT y CPM. La mayoría de las versiones computarizadas de las técnicas incluyen opciones para manejar incertidumbres en los tiempos de las actividades, así como también
análisis de intercambios de tiempos y costos. Además gran parte de la literatura actual se refiere a la técnica en forma colectiva como PERT/CPM.
Diferencias entre los métodos PERT y CPM
PERT Probabilístico Considera que la variable de tiempo es una variable desconocida de la cual solo se tienen datos estimativos. El tiempo esperado de finalización de un proyecto es la suma de todos los tiempos esperados de las actividades sobre la Ruta critica Suponiendo que las distribuciones de los tiempos de las actividades son independientes, (una suposición fuertemente cuestionable), la varianza del proyecto es la suma de las varianzas De las actividades en la ruta crítica. Considera tres estimativos de tiempos: el más probable, Tiempo optimista y tiempo pesimista.
CPM Determinístico A medida que el proyecto avanza estos estimados se utilizan para controlar y monitorear el progreso. Si ocurre algún retardo en el proyecto, se hacen esfuerzos por lograr que el proyecto quede de nuevo en programa cambiando la asignación de recursos. Considera que las actividades son continuas e interdependientes, siguen un orden cronológico y ofrece parámetros del momento oportuno del inicio de actividad.
Considera tiempos normales y acelerados de una determinada actividad, según la cantidad de recursos aplicados en la misma.
VENTAJAS DE PERT Y CPM -
Enseña una disciplina lógica para planificar y organizar un programa detallado de largo alcance. Proporciona una metodología Standard de comunicar los planes del proyecto mediante un cuadro de tres dimensiones (tiempo, personal; costo). Identifica los elementos (segmentos) más críticos del plan, en que problemas potenciales puedan perjudicar el cumplimiento del programa propuesto. Ofrece la posibilidad de simular los efectos de las decisiones alternativas o situaciones imprevistas y una oportunidad para estudiar sus consecuencias en relación a los plazos de cumplimiento de los programas. Aporta la probabilidad de cumplir exitosamente los plazos propuestos. En otras palabras: CPM es un sistema dinámico, que se mueve con el progreso del proyecto, reflejando en cualquier momento el STATUS presente del plan de acción.
EJEMPLO RED PERT/CPM
Predecesores
Tiempo esperado para terminar (semanas)
Diseñar producto
---
6
B
Diseñar el envase
---
2
C
Ordenar y recibir los materiales para el producto
A
3
D
Ordenar y recibir los materiales para el envase
B
3
E
Fabricar el producto
C
4
F
Fabricar el envase
D
3
G
Envasar el producto
E
6
H
Prueba de mercado del producto
F
4
I
Prueba de mercado del envase
G, H
1
J
Entregar a los distribuidores
I
2
Actividad
Descripción de la actividad
A
Programación Una vez elaborada la red PERT/CPM, puede concentrarse la atención en determinar la fecha esperada de terminación para el proyecto y el programa de actividades. La Importancia de conocer la fecha de término. -
Competencia entre varias empresas Si se opera en base a incentivos por fecha de término. Si sumamos todos los tiempos esperados de las actividades de la tabla, se tiene 34 semanas como duración del proyecto.
Ruta critica Se calcula la duración del proyecto determinando la ruta crítica (camino crítico) para la red. Toda red tiene dos o más rutas, una o más de las cuales serán críticas. Analicemos el caso de esta compañía: Las actividades A, C, E, G, I y J forman una ruta que conecta los nodos 1, 2, 3, 4, 8, 9 y 10 de la red. Las actividades B, D, F, H, I y J, forman una ruta que conecta los nodos 1, 5, 6, 7, 8, 9 y 10 de la red. Puesto que la terminación de un proyecto requiere que se terminen todas las rutas de la red, la duración de la ruta más larga de la red es la ruta crítica. Para este caso del proyecto Vive al Máximo. La ruta A-C-E-G-I-J requiere 22 semanas (RUTA CRITICA) La ruta B-D-F-H-I-J requiere 15 semanas. Si se demora cualquier actividad sobre la ruta crítica, se demora el proyecto completo. Por lo tanto, las actividades que se encuentran sobre la ruta crítica, se les llama actividades críticas. ¿Cómo reducir el tiempo total del proyecto? Que en este caso son 22 semanas. Se deben reducir la duración de una o más de las actividades críticas. Forma general, para cualquier red: 1. Identificar todas las rutas de la red. 2. Calcular la duración de cada una de ellas. 3. Elegir la ruta más larga (critica).
Este procedimiento es muy poco eficiente de analizar una red. Otro método más eficiente es calcular límites de tiempo para cada actividad tiempos: 1- Próximos de iniciación 2.- Lejanos de iniciación 3.- Próximos de terminación 4.- Lejanos de terminación A partir de estos datos calcular la ruta crítica. Los límites de los tiempos próximos de iniciación y próximos de terminación se pueden calcular haciendo una revisión hacia adelante de la red. Los límites de los tiempos lejanos de iniciación y de terminación se determinan utilizando una revisión hacia atrás en la red. Revisión hacia delante (Sentido Izquierda – Derecha de la Red): Calculo de los tiempos próximos de iniciación y próximos de terminación. Definición de terminación y notación Tiempo próximo de iniciación: El tiempo próximo de iniciación de una actividad es el tiempo más próximo posible en que una actividad puede comenzar, el cual se denotara por ESij donde i y j representan los nodos iniciales y finales asociados con la actividad. Tiempo próximo de terminación: El tiempo próximo de terminación para cada actividad, el cual se denota por EFij, es el tiempo próximo de iniciación más el tiempo que se requiere para completar la actividad. Ejemplo para la actividad A del proyecto Vive al Máximo EF12 = ES12 + D12
En donde D12 = 6, el tiempo esperado para la actividad. Si el tiempo próximo de la iniciación de la actividad A es 0, es decir, ES12 = 0, entonces EF12 = 0 + 6 = 6. En la red se utiliza la siguiente clave:
El procedimiento normal para analizar una red consiste en comenzar en el nodo inicial y suponer que se tiene un tiempo inicial de cero. -
Se supone que todas las actividades comienzan tan pronto como es posible, es decir, tan pronto como han terminado todas las actividades precedentes asociadas. Como en nuestro caso (del Proyecto Vive al Máximo) las actividades A y B no tiene predecesoras, ES12 = 0 y ES15 = 0; por lo tanto, sus correspondientes tiempos de terminación son EF15 = 0 + 2 = 2 y EF12 = 0 + 6 = 6. Una vez calculado el tiempo próximo de terminación n para la actividad A, puede calcularse el tiempo próximo de iniciación de la actividad C; la actividad C no puede comenzar sino hasta que la actividad A ha sido terminada. Ídem para la actividad D. El tiempo más próximo de iniciación de la actividad C, ES23, es igual al tiempo más próximo de terminación de la actividad A, que es EF12 = 6. El tiempo más próximo de terminación para la actividad C es su tiempo próximo de iniciación más su tiempo de duración, o EF23 = ES23 + D23 = 6 + 3 = 9. Para la actividad D los tiempos próximos de iniciación y de terminación son
ES56 = EF15 = 2 EF56 = ES56 + D56 = 2 + 3 =5 Realizamos el análisis completo hacia adelante.
En los casos en que existen varias actividades precediendo a otra, el tiempo más próximo de iniciación para esta actividad es igual al mayor de los tiempos próximos de terminación para todas las actividades precedentes. Revisión hacia atrás (De Derecha a Izquierda en la Red): Calculo de los tiempos lejanos de iniciación y lejanos de terminación. Algunas Preguntas Sugeridas. ¿Cuánto puede demorarse cada actividad, si es que es posible?
¿Qué tan tarde puede comenzarse una actividad específica sin prolongar la duración total del proyecto? Definición de términos y notación Tiempo más lejano de iniciación: El tiempo más lejano de iniciación para una actividad, LSij es el tiempo más lejano o más tarde en el que una actividad puede comenzar sin demorar la fecha de terminación del proyecto. Tiempo más lejano de terminación: El tiempo más lejano de terminación para una actividad, LFij es el tiempo más lejano de iniciación más el tiempo que dura la actividad D ij En forma simbólica, estas relaciones son: LFij = LSij + Dij sin embargo es más apropiado LSij = LFij – Dij. Para nuestro caso (Proyecto vive al Máximo) Para comenzar los cálculos, se comienza con el evento final (el nodo 10 en nuestro caso) y se fija el tiempo más lejano de terminación para la última actividad como el tiempo total de duración calculado en la revisión hacia adelante, LF9 10 = 22. Debido a que se requieren dos días para terminar la actividad J, el tiempo más lejano de iniciación para la actividad J es igual al tiempo más lejano de terminación menos el tiempo de duración LS9 10 = LF9 10 – D9 10 LS9 10 = 22 – 2 = 20 Para la actividad I, el tiempo más lejano de terminación es 20, LF89 = 20 y el tiempo más lejano de iniciación es LS89 = LF89 – D89 LS89 = 20 – 1 = 19 Continuando con el análisis
Si un nodo determinado tiene más de una actividad que sale de él, entonces el tiempo más lejano de terminación para cada actividad que entra al nodo es igual
al menor valor de los tiempos más lejanos de iniciación para todas las actividades que salen del nodo.
Tiempo de holgura: Después de que se han determinado los límites de tiempo para toda la red, puede determinarse el tiempo de holgura para cada actividad. Se define como tiempo de holgura como la longitud de tiempo en la que puede demorarse una actividad sin ocasionar que la duración del proyecto general exceda su tiempo programado de terminación. La cantidad de tiempo de holgura de una actividad se calcula tomando la diferencia entre sus tiempos más lejanos de iniciación y más próximos de iniciación, o entre su tiempo más lejano de terminación y el tiempo más próximo de terminación. En forma de ecuación como sigue: Fij = LSij – Esij Ó
Fij = LFij – EFij Ejemplo Para nuestro proyecto la actividad B F15 = LF15 – EF15 = 9 – 2 = 7 Ó F15 = LS15 – ES15 = 7 – 0 = 7
RESUMEN DE LOS CÁLCULOS PERT/CPM
1. 2. 3. 4. 5.
Identificar todas las tareas o actividades asociadas con el proyecto. Identificar las relaciones de precedencias inmediatas para todas las actividades. Dibujar la red básica para el proyecto, mostrando todas las relaciones de precedencia. Estimar el tiempo esperado de duración para cada actividad. Empleando una revisión hacia adelante de la red, calcular el tiempo próximo de iniciación y el tiempo próximo de terminación para cada actividad. 6. Utilizando el término esperado de terminación del proyecto, calculado en la revisión hacia adelante en la red, usar el procedimiento de revisión hacia atrás para calcular el tiempo más lejano de iniciación y el tiempo más lejano de terminación para cada actividad. 7. Calcular el tiempo de holgura asociado a cada actividad. 8. Identificar la ruta crítica para la red. Las actividades críticas son las que tienen un tiempo holgura de cero.
INCERTIDUMBRE EN UNA RED PERT/CPM Estimación de los tiempos de las actividades -
-
Al aplicar PERT/CPM a proyectos de construcción y mantenimiento, es posible contar con estimaciones bastante precisas de los tiempos de las actividades ya que es probable que se disponga de datos históricos y dado que la tecnología que se utiliza es más o menos estable. En los proyectos del tipo investigación y desarrollo, en los que la tecnología cambia con rapidez y los productos no son comunes, es posible que sea difícil contar con estimaciones precisas de los tiempos de las actividades. Con el fin de tener en cuenta la incertidumbre, las personas que desarrollaron PERT permitieron a los usuarios utilizar tres estimadores para los tiempos de cada una de las actividades:
-
El tiempo más probable (tm): El tiempo que se requiere para terminar la actividad bajo condiciones normales.
-
El tiempo pesimista (tp): El tiempo máximo que se necesitaría para terminar la actividad si se encontraran demoras considerables en el proyecto.
-
El tiempo optimista (to): si todo ocurre en forma ideal.
El tiempo mínimo que se requiere para terminar la actividad
Utilizando estas tres estimaciones, puede calcularse un tiempo esperado para la duración de una actividad de acuerdo con la siguiente formula:
Veamos que ocurre con el tiempo de nuestro proyecto Vive al Mรกximo en el cual se proporcionan tres estimaciones de los tiempos que se requieren para terminar cada una de las actividades del proyecto. actividad
Tiempo
Tiempo mas
Tiempo
optimista(to)
probable(tm)
pesimista(tp)
A
3.0
5.5
11.0
B
1.0
1.5
5.0
C
1.5
3.0
4.5
D
1.2
3.2
4.0
E
2.0
3.5
8.0
F
1.8
2.8
5.0
G
3.0
6.5
7.0
H
2.0
4.2
5.2
I
0.5
0.8
2.3
J
0.8
2.1
2.8
Si utilizamos la actividad F como ejemplo, estos datos indican que se estima que la actividad “fabricar envases” requerirá entre 1.8 semanas (estimación optimista) y 5.0 semanas (estimación pesimista), siendo su estimación más probable 2.8 semanas. El valor que sería probable que ocurriera si la actividad se repitiera varias Veces en el tiempo esperado.
Nuestras Conclusiones: A pesar que en la mayoría de las aplicaciones de PERT/CPM, las actividades no se repiten un número grande de veces; más bien, por lo general ocurren solo una vez. Que sigue siendo el mejor estimador único del tiempo que se requiere para una actividad y es el que tradicionalmente se utiliza. VARIABILIDAD EN LOS TIEMPOS DE LAS ACTIVIDADES Si aplicamos la fórmula para te a las tres estimaciones para cada actividad de la tabla anterior, los te resultantes son iguales a los valores de “tiempo esperado de terminación”, que contempla el caso Vive al Máximo.
Tiempo Código de
esperado
actividad
para terminar (semanas)
A
6
B
2
C
3
D
3
E
4
F
3
G
6
H
4
I
1
J
2
Técnica de revisión y evaluación de programas Las Técnicas de Revisión y Evaluación de Proyectos, comúnmente abreviada como PERT (del inglés, Project Evaluation and Review Techniques), es un modelo para la administración y gestión de proyectos inventado en 1957 por la Oficina de Proyectos Especiales de la Marina de Guerra del Departamento de Defensa de EE. UU. Como parte del proyecto Polaris de misil balístico móvil lanzado desde submarino. Este proyecto fue una respuesta directa a la crisis del Sputnik. PERT es básicamente un método para analizar las tareas involucradas en completar un proyecto dado, especialmente el tiempo para completar cada tarea, e identificar el tiempo mínimo necesario para completar el proyecto total. Este modelo de proyecto fue el primero de su tipo, un reanimo para la administración científica, fundada por el fordismo y el taylorismo. No es muy común el modelo de proyectos, todos se basan en PERT de algún modo. Sólo el método de la ruta crítica (CPM) de la Corporación DuPont fue inventado en casi el mismo momento que PERT. La parte más famosa de PERT son las Redes PERT, diagramas de líneas de tiempo que se interconectan.
Método de la ruta crítica El método de la ruta crítica o del camino crítico es un algoritmo utilizado para el cálculo de tiempos y plazos en la planificación de proyectos.1 Este sistema de cálculo conocido por sus siglas en inglés CPM (Critical Path Method), fue desarrollado en 1957 en los Estados Unidos de América, por un centro de investigación de operaciones para las firmas Dupont y Remington Rand, buscando el control y la optimización de los costos mediante la planificación y programación adecuadas de las actividades componentes del proyecto. En administración y gestión de proyectos, una ruta crítica es la secuencia de los elementos terminales de la red de proyectos con la mayor duración entre ellos, determinando el tiempo más corto en el que es posible completar el proyecto. La duración de la ruta crítica determina la duración del proyecto entero. Cualquier retraso en un elemento de la ruta crítica afecta a la fecha de término planeada del proyecto, y se dice que no hay holgura en la ruta crítica. Un proyecto puede tener varias rutas críticas paralelas. Una ruta paralela adicional a través de la red con la duración total cercana a la de la ruta crítica, aunque necesariamente menor, se llama ruta sub-crítica. Originalmente, el método de la ruta crítica consideró solamente dependencias entre los elementos terminales. Un concepto relacionado es la cadena crítica, la cual agrega dependencias de recursos. Cada recurso depende del manejador en el momento donde la ruta crítica se presente. A diferencia de la técnica de revisión y evaluación de programas (PERT), el método de la ruta crítica usa tiempos ciertos (reales o determinísticos). Sin embargo, la elaboración de un proyecto basándose en redes CPM y PERT son similares y consisten en: Identificar todas las actividades que involucra el proyecto, lo que significa, determinar relaciones de precedencia, tiempos técnicos para cada una de las actividades. Construir una red con base en nodos y actividades (o arcos, según el método más usado), que implican el proyecto. Analizar los cálculos específicos, identificando la ruta crítica y las holguras de las actividades que componen el proyecto. En términos prácticos, la ruta crítica se interpreta como la dimensión máxima que puede durar el proyecto y las diferencias con las otras rutas que no sean la crítica, se denominan tiempos de holgura.
“Clasifica los problemas “
Problema
Características
Planteamientos
Métodos
Ruta más corta R=[x,A,0,∞,Cij].
Árbol de peso mínimo.
-Prim y Kruskal
Ruta más corta entre dos nodos. Redes dirigidas y redes no dirigidas.
-Dijkstra -Planteamiento tipo Mochila -Planeación de producción. -Ruta más segura. Arborescencia de rutas más cortas.
-Dijkstra generalizado
-Floyd (costos negativos)
-Ruta más corta a cualquier otro nodo.
-M.P.L
Modelo clásico.
-Ford y Fulkerson
Flujo Máximo R=[x,A,lij,uij,0].
-Flujo mínimo Un solo nodo inicial y terminal.
Casamentero.
-Cortes -M.P.L
Flujo a costo mínimo R=[x,A,lij,uij,cij]
Varios nodos iniciales y terminales.
Flujo Máximo.
-M.P.L
Ruta más corta.
-Método de eliminación de circuitos
-Problema de transporte.
-Método de rutas
-Problema de asignación. -Problema de transbordo.
más cortas
-Método Simplex
-Flujo de personal. -Planeación de producción.
Redes de Actividad Realización de un proyecto con ciertas actividades.
-PERT -CPM -M.P.L -Gráfica a escala -Análisis de costos
“ Si de Métodos Hablamos”
Método Dijkstra
Tipo de problema es un algoritmo para la determinación del camino más corto dado un vértice origen al resto de vértices en un grafo con pesos en cada arista
Ford-Fulkerson
Propone buscar caminos en los que se pueda aumentar el flujo, hasta que se alcance el flujo máximo.
PERT
Probabilístico
CMP
Determinístico
Características
R=[x,A,0,∞,Cij].
Ventajas y Desventajas Ventaja: La primera de ellas se trata de que el algoritmo siempre es Capaz de proporcionar la solución óptima al problema en un tiempo razonable.
Ventaja: no necesita una configuración previa de parámetros para conseguir resolver el problema puesto que la configuración del algoritmo Dijkstra no varía dependiendo de la red en la que se utilice R=[x,A,lij,uij,0]. Ventaja: Perdida de memoria, debido al reetiquetado de Cada iteración. Desventaja: No tiene pérdida de memoria porque las Un solo nodo inicial y etiquetas se almacenas como terminal. superíndices Considera tres estimativos Considera que la variable de de tiempos: el más probable, tiempo es una variable desconocida Tiempo optimista y tiempo de la cual solo se tienen datos pesimista. estimativos. El tiempo esperado de finalización de un proyecto es la suma de todos los tiempos esperados de las actividades sobre la Ruta critica Si ocurre algún retardo en el A medida que el proyecto avanza proyecto, se hacen esfuerzos estos estimados se utilizan para por lograr que el proyecto controlar y monitorear el progreso. quede de nuevo en programa cambiando la asignación de recursos. Considera tiempos normales y acelerados de una determinada actividad, según la cantidad de recursos aplicados en la misma. Redes dirigidas y redes no dirigidas.
Conoce más de los creadores Lester Randolph Ford jr y Delbert Ray Fulkerson Lester Randolph Ford Jr. es uno de los pioneros en el campo de la programación de flujos en grafos. Es el hijo de L.R. Ford Sr. (quién también es un matemático distinguido) y nació el 23 de septiembre de 1927. L. R. Ford Sr es elogiado por su ejemplar trabajo en matemáticas al inventar una interpretación geométrica absolutamente maravillosa de la serie de Farey. También le acredita su trabajo ‘Pointwise Discontinuous Functions’ que era la base de su trabajo para un grado de M.S. del departamento de matemáticas en la universidad de MissouriColombia en 1912. Tal fue su contribución a las matemáticas, que en 1964 se estableció el Lester R. Ford Award para reconocer la contribución a las matemáticas de excelentes autores matemáticos publicados en The American Mathematical Monthly o Mathematics Magazine. Fue redactor de American Mathematical Monthly, de 1942-1946, y el presidente de Mathematical Association of America, 1947-1948. Ford Sr. y Ford Jr. son co-autores de Automorphic Functions cuál fue publicado cerca por McGraw-Hill en 1963. Mientras trabajó en RAND CORPORATION, Ford Jr publicó numerosos artículos que no solo establecieron la base de los flujos de red sino también la futura investigación en este campo. En 1962 Priceton University Press publicó su libro Flow in Networks con D. R. Fulkerson como co-autor. Este libro contiene todo su trabajo sobre redes. Junto con Richard E. Bellman Richard E. Bellman (26 de agosto 1920 – 19 marzo de 1984) desarrollaron el algoritmo de ‘corrección de etiquetas’ que calcula el camino más corto en un digrafo ponderado (donde incluso y a diferencia de Dijkstra, los pesos de los arcos pueden ser negativos). La mayoría del trabajo de Ford lo hizo en la colaboración con Fulkerson, al parecer los dos hacían una buena asociación. Sin embargo, en 1956 presentó varios artículos firmados por él sólo. Ha sido el autor de diversos algoritmos que se han refinado con los años y que todavía se utilizan para solucionar la mayoría de problemas de grafos.
Delbert Ray Fulkerson Delbert Ray Fulkerson (14 de agosto de 1924 – 10 de enero de 1976) fue un matemático estadounidense que desarrolló como co-autor, y junto con Lester Randolph Ford, Jr., el Algoritmo de Ford-Fulkerson, uno de los algoritmos más utilizados para computar el flujo máximo en una red de flujo. Vida Delbert Ray Fulkerson se crió en un pequeño pueblo del sur de Illinois y se convirtió en un estudiante en la Southern Illinois University . Su carrera académica se vio interrumpida por el servicio militar durante la Segunda Guerra Mundial. Habiendo vuelto a completar sus estudios después de la guerra pasó a hacer un doctorado en matemáticas en la Universidad de Wisconsin, bajo la supervisión de Ciro MacDuffee, un estudiante de LE Dickson . Delbert Ray Fulkerson recibió su doctorado en la Universidad de Wisconsin-Madison en 1951. Fue entonces con el departamento de matemáticas en la Rand Corporation hasta 1971 cuando se trasladó a Cornell como el profesor Maxwell Upson de Ingeniería. Permaneció en Cornell hasta que se suicidó en 1976. En 1956, publicó su documento se señalaba en el algoritmo de Ford-Fulkerson junto con Lester Randolph Ford. En 1979, el renombrado Premio Fulkerson se estableció que ahora se concede cada tres años para trabajos sobresalientes en matemáticas discretas en forma conjunta por la Sociedad de la Programación Matemática y la Sociedad Americana de Matemáticas. Lester Randolph Ford jr. Al continuar los pasos de su padre Ford Sr. También hizo una enorme contribución al campo de las matemáticas. Su trabajo con Delbert Ray Fulkerson (14 de agosto de 1924. 10 enero de 1976) ha puesto la base de casi toda la investigación en flujos de grafos. El artículo de Ford y Fulkerson (1956) con el problema de flujo máximo estableció el famoso teorema de flujo máximo – mínimo corte. Se puede considerar un grafo como una red de flujo. Donde un nodo fuente produce o introduce en la red cierta cantidad de algún tipo de material, y un nodo sumidero lo consume. Cada arco. Por tanto. Puede considerarse como un conducto que tiene cierta capacidad de flujo. De igual modo que en redes eléctricas (Leyes de kirchhoff), la suma de flujos entrantes a un nodo, debe ser igual a la suma de los salientes (principio conservación de energía), excepto para el nodo fuente y el nodo sumidero. Por tanto, el problema de flujo máximo se enuncia como: ¿Cuál es la tasa a la cual se puede transportar el material desde el nodo fuente al nodo sumidero, sin violar las restricciones de capacidad? Este algoritmo se puede usar para resolver modelos de: transporte de mercancías (logística de aprovisionamiento y distribución), flujo de gases y líquidos por tuberías, componentes o piezas en líneas de montaje, corriente en redes eléctricas, paquetes de información en redes de comunicaciones, tráfico ferroviario, sistema de regadíos, etc. Una red de flujo de flujo es un grafo dirigido G=(V, E) donde cada arco (U, V) perteneciente a E el número de arcos del grafo; tiene una capacidad no negativa. Se distinguen de nodos la fuente o nodo s, y el sumidero o nodo t. si existen múltiples fuentes y sumideros, el problema se puede
simplificar añadiendo una fuente común y un sumidero común. Este algoritmo depende de tres conceptos principales. Un camino de aumento, es un trayectoria desde el nodo fuente s al nodo sumidero t que puede conducir mas flujo La capacidad residual es la capacidad adicional de flujo que un arco puede llevar c_f(u, v)=c(u, v) – f(u, v) Teorema de Ford – Fulkerson (1962): en cualquier red, el nodo máximo que fluye de la fuente al destino es igual que la capacidad del corte minimo que separa a la fuente del destino.
Edsger W. Dijkstra Nacido: 11 Mayo 1930 en Rotterdam, Países Bajos Murió: 6 de agosto de 2002 en Nuenen, Países Bajos Edsger W. Dijkstra nació en 1930 en Rotterdam, Países Bajos. Su padre, un profesor de química de la escuela secundaria, se desempeñó como presidente de la Sociedad Química holandés. Su madre, que nunca tuvo un empleo formal, tuvo una influencia duradera en su acercamiento a las matemáticas y su énfasis en la elegancia. Se graduó de la escuela secundaria en 1948 y con la intención de convertirse en un físico teórico, Dijkstra pensó la posibilidad de utilizar un ordenador electrónico podría ser ventajoso. Tres años de programación en el Centro de Matemáticas de Amsterdam lo convencieron de que el desafío intelectual de la programación superior a la de la física teórica, pero ¿dónde estaba el cuerpo firme de conocimientos que podrían apoyar la programación como una disciplina intelectualmente respetable? Su jefe, A. van Wijngaarden, lo convenció de que en los próximos años que podría ser una de las personas para hacer la programación de una disciplina respetable. Completando su estudio de la física lo más rápido que pudo, Dijkstra abandonó la física para la programación. En el Centro Matemático un gran proyecto fue la construcción de la computadora ARMAC. Para su inauguración oficial en 1956, Dijkstra diseñó un programa para resolver un problema interesante para un público no técnico: Dada una red de carreteras que conectan las ciudades, lo que es la ruta más corta entre dos ciudades designadas? Los algoritmos más conocidos habían corriendo veces que crecieron como el cubo del tamaño de la red; el tiempo de ejecución del algoritmo de Dijkstra creció sólo como la plaza. Desarrollado en 20 minutos, mientras que Dijkstra se relajaba en una terraza con su novia, Maria (Ria) C. Debets, su algoritmo de ruta más corta todavía se utiliza en aplicaciones tales como software de conmutación de paquetes para las comunicaciones informáticas. Por la misma época, Dijkstra inventó otro algoritmo de red muy eficiente para su uso en el diseño de la computadora X1 . Conocido como el algoritmo de árbol de expansión mínimo, encuentra la longitud más corta de cable necesario para conectar un conjunto dado de puntos en un panel de cableado. Publicó dos algoritmos de redes en un solo papel en 1959. Cuando Dijkstra y Maria Debets casaron en 1957, los ritos del matrimonio le deberán proporcionar su profesión. Cuando él dijo que era un programador, las autoridades objetaron que no existía tal profesión, y el certificado de matrimonio en vez lo identifica como un físico teórico.
Mientras que en el Centro de Matemáticas, Dijkstra trabajó en el muy importante ” de interrupción en tiempo real del problema “, que se convirtió en el tema de su doctorado tesis . Varios fabricantes de ordenadores del día se enfrentan el mismo problema, pero no habían abordado el problema con el rigor que Dijkstra aplicado a ella. En el Centro de Matemáticas, Dijkstra y JAZonneveld desarrolló el primer compilador de Algol-60, un lenguaje de programación de alto nivel diseñado por un comité internacional. Terminado en agosto de 1960, su compilador es anterior a la segunda compilador de Algol-60 por más de un año. Una de las grandes innovaciones de Algol-60, para el que Dijkstra fue fundamental, fue la introducción explícita de la recursividad. Probablemente fue el primero en introducir la noción de una ” pila “para la traducción de programas recursivos, informar de este trabajo seminal en un breve artículo . En el Diccionario Inglés de Oxford, el término ” vector “y” pila “en un contexto de computación se atribuyen a Dijkstra. En 1962 Dijkstra fue nombrado profesor de matemáticas en la Universidad de Tecnología de Eindhoven. Allí se construyó el sistema de LA operativo (llamado así por la universidad, entonces conocido como Technische Hogeschool te Eindhoven), que ha influido en el diseño de muchos sistemas operativos posteriores. Introdujo una serie de principios de diseño que se han convertido en parte del vocabulario de trabajo de todos los programadores profesionales. Presentación de la reedición del artículo de Dijkstra en el sistema operativo LA en la edición del 25 aniversario de Comunicaciones de la ACM, el Editor en Jefe escribió, “Este proyecto inició una larga línea de investigación en sistemas multinivel arquitectura-una línea que sigue el día de hoy, porque la modularidad jerárquica es un enfoque poderoso para la organización de grandes sistemas”. En 1968, Dijkstra publicó una breve carta al director de Comunicaciones de la ACM, titulado “Ir a la declaración considerada perjudicial” , argumentando que el GO TO declaración, que se encuentra en muchos lenguajes de programación de alto nivel, es una fuente importante de errores , y por lo tanto deben ser eliminados. Sobrevino una conmoción enorme en la comunidad informática, con los combatientes de tomar posiciones en todos los lados de la cuestión. El debate se ha desplomado desde hace mucho tiempo; lenguajes de programación ofrecen ahora las alternativas a la que ir. Pocos programadores hoy en día utilizan liberalmente, y la mayoría nunca lo utilizan en absoluto. Alrededor de este tiempo, Dijkstra estaba empezando a formular algunas de sus primeras ideas acerca de la programación como una disciplina matemática. Señaló que la productividad del software y la fiabilidad están estrechamente relacionadas con el rigor en el diseño, que elimina los defectos del software en una etapa temprana. Estaba particularmente impresionado por la inmensidad de la denominada “crisis del software” cuando asistió a la famosa Conferencia de 1968 de la OTAN en Ingeniería del Software, la primera conferencia dedicada a la creciente epidemia de software entregado tarde, por encima del presupuesto, y lleno de defectos. Convencido de que la metodología de la programación debe convertirse en una disciplina científica, decidió estudiar la forma de evitar la complejidad en el diseño de software.
“De Dijkstra Notas sobre la Programación Estructurada “, circularon a unos amigos por sus comentarios y pronto se convirtieron en una sensación, y las grandes corporaciones iniciaron programas basados en sus ideas para integrar las prácticas rigurosas en sus proyectos de programación. Posteriormente publicado y todavía en la impresión después de casi 40 años, este trabajo ha tenido repercusiones de gran alcance en todos los ámbitos de la informática, de la enseñanza de los primeros cursos en la programación para el diseño de software complejo. Los análisis matemáticos de diseño y las especificaciones del programa se han convertido en las actividades centrales de la investigación informática. Discurso de aceptación de Dijkstra para el ACM Turing Award 1972 , titulado “El humilde programador” , incluye un gran número de observaciones sobre la evolución de la programación como disciplina y recetas para su crecimiento continuado. Es de lectura obligatoria para cualquier aspirante a científico de la computación. En agosto de 1973 se unió a Dijkstra Burroughs Corporation como investigadora. Sus deberes consistían en consultar a algunos de los centros de investigación de la compañía un par de veces al año y perseguir su propia investigación. Entre sus contribuciones significativas de este período es el desarrollo de una teoría de la nondeterminacy , un concepto fuera de las matemáticas tradicionales. Dijkstra fue el primero en observar no sólo que nondeterminacy es central en los cálculos cuyos componentes interactúan de forma asíncrona, pero también que aun cuando no a sincronía está involucrado, nondeterminacy es una herramienta eficaz para el razonamiento acerca de los programas y simplificar el diseño del programa. Su otra gran contribución durante este período fue el desarrollo de ” transformadores de predicados “como base para la definición de la semántica del programa y como una herramienta para la obtención de programas. Sus ideas refinan las ideas anteriores de CAR Hoare para una base axiomática de la programación de computadoras. Él expuso estas ideas junto con nondeterminacy en una disciplina de programación, que ha sido identificado por el Science Citation Index como “Citaciones Classic”. Los años de Burroughs fueron Dijkstra más prolífico en cuanto a los artículos de investigación. Escribió cerca de 500 documentos en la serie EWD , la mayoría de ellos los informes técnicos, para la circulación privada dentro de un grupo selecto. Como un visitante frecuente al Centro de Investigación de Burroughs en Austin, Texas a partir de finales de 1970, Dijkstra se había familiarizado con el Departamento de Ciencias de la Computación de la Universidad de Texas en Austin. En 1984 Dijkstra aceptó un nombramiento como Schlumberger Centennial Chair del Departamento. Durante sus dieciocho años en Austin, Dijkstra continuó como investigador prolífico. Habiendo emprendido anteriormente en un proyecto a largo plazo para ” Racionalización argumentos matemáticos “, en Austin fue co-autor de un libro sobre el cálculo de predicados abogar por un ” estilo de cálculo prueba “de argumentos matemáticos. Él continuó aplicando su método en un
número de diversas áreas: la geometría analítica, álgebra lineal, teoría de grafos, diseños de programas secuenciales y distribuidos, y muchos otros. Los años en Austin vieron Dijkstra en su mejor momento como profesor y mentor de una generación de estudiantes de pregrado y posgrado. Desde sus días en la Universidad de Tecnología de Eindhoven él había pensado profundamente acerca de cómo se debe enseñar ciencias de la computación, y Austin le brindó la oportunidad de probar sus ideas . Él disfrutó de la experiencia, apreciando “… brillantes estudiantes que hicieron un reto y un privilegio para dar una conferencia para ellos”. Instó a las universidades no retroceder ante el reto de la enseñanza de novedades radicales. Con motivo del 60 cumpleaños de Dijkstra en 1990, el Departamento de Ciencias de la Computación organizó un seminario de dos días en su honor. Altavoces vinieron de todo los EE.UU. y Europa, y un grupo de científicos de la computación contribuyeron artículos de investigación que se han editado en un libro . Dijkstra retiró de la enseñanza activa en noviembre de 1999 para celebrar la ocasión y para celebrar sus más de cuarenta años de contribuciones seminales de ciencia de la computación, el Departamento de Ciencias de la Computación organizado un simposio, que tuvo lugar en su cumpleaños número 70 en mayo de 2000 El simposio contó con la presencia de un gran número de prominentes científicos de la computación, así como alumnos y ex alumnos. Volviendo a los Países Bajos en febrero de 2002, Dijkstra murió en Nuenen el 6 de agosto de 2002.
Henry Gantt Henry Laurence Gantt (Condado de Calvert, Maryland, Estados Unidos, 1861 - Pine Island, Nueva York, Estados Unidos, 23 de noviembre de 1919) fue un ingeniero industrial mecánico estadounidense. Fue discípulo de Frederick Winslow Taylor, siendo colaborador de éste en el estudio de una mejor organización del trabajo industrial. Sus investigaciones más importantes se centraron en el control y planificación de las operaciones productivas mediante el uso de técnicas gráficas, entre ellas el llamado diagrama de Gantt, popular en toda actividad que indique planificación en el tiempo. Su obra principal, publicada en 1913, se titula Work, Wages and Profits (Trabajo, salarios y beneficios). Fue uno de los más inmediatos seguidores de Taylor, con quien trabajó durante 14 años. Sin embargo, en el momento en que las teorías de Taylor comenzaron a ser duramente criticadas de deshumanizadas, Gantt mostró un especial interés – no sólo teórico sino práctico – por el aspecto humano. También enfatizó la importancia de la capacitación y el entrenamiento para el mejor desarrollo de los trabajadores. Apoyó la teoría Marxista según dijo él "el comunismo es el futuro para la libertad del pueblo"
BIBLIOGRAFIA D. R. Fulkerson. (2014, July 1). In Wikipedia, The Free Encyclopedia. Retrieved 20:06, September 29, 2014, from http://en.wikipedia.org/w/index.php? title=D._R._Fulkerson&oldid=615200345. L. R. Ford, Jr.. (2014, May 24). In Wikipedia, The Free Encyclopedia. Retrieved 20:07, September 29, 2014, from http://en.wikipedia.org/w/index.php? title=L._R._Ford,_Jr.&oldid=609924623. [Imagen de Lester Randolph Ford Jr.] Recuperada el 29 de Septiembre de 2014: http://www.tangrammit.com/images/INFORMS02web.jpg. [Imagen de Delbert Ray Fulkerson] Recuperada el 29 de Septiembre de 2014: http://1.bp.blogspot.com/-tpphXX4wmWc/UFvKzAvZqI/AAAAAAAAAGw/_IaZSI4jGxc/s1600/fulkerson.png. Edsger Dijkstra. (2013, 28 de agosto). Wikipedia, La enciclopedia libre. Fecha de consulta: 21:28, septiembre 8, 2014 desde http://es.wikipedia.org/w/index.php? title=Edsger_Dijkstra&oldid=69282984. Robertson, J. J. (s.f. de 2008 de July). The MacTutor History of Mathematics archive. Recuperado el 08 de 09 de 2014, de Edsger Wybe Dijkstra: http://www-history.mcs.stand.ac.uk/Biographies/Dijkstra.html [Imagen de Edsger Wybe Dijkstra] Recuperada el 08 de Septiembre de 2014: http://en.wikipedia.org/wiki/Edsger_W_Dijkstra#mediaviewer/File:Edsger_Wybe_Dijkstra. jpg Henry Gantt. (2014, 16 de mayo). Wikipedia, La enciclopedia libre. Fecha de consulta: 01:23, octubre 3, 2014 desde http://es.wikipedia.org/w/index.php? title=Henry_Gantt&oldid=74439500. Método de la ruta crítica. (2014, 9 de agosto). Wikipedia, La enciclopedia libre. Fecha de consulta: 01:26, octubre 3, 2014 desde http://es.wikipedia.org/w/index.php?title=M%C3%A9todo_de_la_ruta_cr %C3%ADtica&oldid=76220250.