jueves, 22 de septiembre de 2011

Unidad 2: Redes de Optimización

Biografías

Edsger Wybe Dijkstra  



Edsger Wybe Dijkstra (1930 – 2002) nació en 1930 en Rotterdam, Holanda. Era hijo de Wybe Douwe Dijkstra y Brechtje Cornelia Kruyper, y tenia tres hermanos más. Su padre era professor de fisica en la escuela secundaria de Rotterdam, mientras que su madre era matemática.

De joven, asistió a la escuela secundaria de Rotterdam. Djikstra quería estudiar Derecho y asi poder representar a los Paises Bajos en las Naciones Unidas. Pero, en 1948 realizó los exámenes finales de su etapa en la escuela secundaria y sacó notas excelentes en matematicas, física, química y biología, y tanto sus padres como sus profesores intentaron persuadirle para que se decantara por una carrera de ciencias. Finalmente, decidió estudiar física teórica en la universidad de Leyden.

Tres años después, en 1951, Dijkstra vio un anuncio de la Universidad de Cambridge sobre un curso de tres semanas que trataba la programación en computadores. Se interesó mucho por este curso y decidió apuntarse, ya que lo veía como una oportunidad esta actividad, que consideraba muy ligada a su campo, la física teórica.

Aad van Wijngaarden, que era el director del Departamento de Ciencia de la Computación del Centro Matemático en Amsterdam, había hecho el mismo curso en Cambridge en el año anterior y cuando se enteró de que Dijkstra había terminado, le ofreció un puesto como programador del Centro de Matemáticas. Dijkstra aceptó el cargo desde marzo de 1952, pero sólo como una posición a tiempo parcial, ya que seguía siendo estudiante de física teórica en la Universidad de Leyden. A pesar de esto, Dijkstra empezaba a decantarse más por la programación que por la física teorica, ya que le suponía un reto mayor, al ser una rama del saber prácticamente nueva, con mucho por descubrir.

Después de haber tomado la decisión, Dijkstra completó sus estudios en física teórica en la universidad, graduándose en 1956. También en 1956, el Centro de Matemáticas de Amsterdam, en el que trabajaba completó la construcción de una nueva computadora y quería hacer una demostración pública. Para ello, Dijkstra, planteó el problema de encontrar el camino mas corto entre dos ciudades de los Países Bajos. Publicó su algoritmo, muy eficaz, que ha perdurado hasta nuestros días, y conocido popularmente como “el algoritmo de Djikstra” (o algoritmo de caminos mínimos). La idea de este algoritmo consiste en ir explorando todos los caminos más cortos que parten del vértice origen y que llevan a todos los demás vértices; cuando se obtiene el camino más corto desde el vértice origen, al resto de vértices que componen el grafo, el algoritmo se detiene.

También en 1959 fue galardonado con el doctorado de la Universidad de Amsterdam por su tesis La comunicación con un equipo automático.

Como curiosidad, destacar que en 1957 se casó con María Debets , y tuvo dos hijos y una hija. Sin embargo, tuvo un problema en su boda porque el Juez de Paz no aceptaba “programador” como profesión para los registros, por lo que tuvo que decir que era “físico teórico” en el formulario.

Dijkstra también colaboró con el equipo de desarrollo del lenguaje de programación ALGOL-60. Hizo varias contribuciones importantes: la introducción explícita de la recursividad y la noción de ‘pila’. Dijkstra, junto con uno de sus colegas en el Centro de Matemáticas, escribió el primer compilador de ALGOL-60, que se completó en agosto de 1960.

En 1972 recibió el premio Turing, y su discurso fue publicado en un artículo titulado “The Humble Programmer” (el programador humilde).

En 1984 se le ofreció un puesto en el Burroughs Research Center de Austin, Texas, donde permaneció hasta retirarse en 1999.

Finalmente murió en el año 2002 en Nuenen, Holanda, tras una larga enfermedad de cáncer.




  Robert W. Floyd

 



Robert W. Floyd (8 de junio de 1936 - 25 de septiembre de 2001) fue un prominente científico estadounidense en informática.

Nacido en Nueva York, Floyd culminó bachillerato a los 14 años. Se graduó en la Universidad de Chicago en 1953 a los 17 años y como Físico en 1958.

Operador de computadoras en los años 60, publicó sus primeros artículos los cuales fueron de gran influencia y fue nombrado profesor asociado en la Universidad de Carnegie Mellon. Seis años más tarde fue nombrado profesor en la Universidad de Stanford.

Entre sus contribuciones se encuentran el diseño y análisis de algoritmos eficientes para encontrar el camino más corto en un grafo y para el problema de reconocimiento de frases, pero probablemente su logro más importante fue el ser pionero, con su artículo de 1967 «Assigning Meanings to Programs», en el área de verificación de programas utilizando aserciones lógicas, donde aparece la importante noción de invariante, esencial para demostrar propiedades de programas iterativos.

Floyd recibió el Premio Turing de la ACM en 1978 «por tener una clara influencia en las metodologías para la creación de software eficiente y confiable, y por haber contribuido a la fundación de las subáreas teoría del reconocimiento de frases, semántica de los lenguajes de programación, verificación automatizada de programas, síntesis automatizada de programas y análisis de algoritmos». 




Lester Randolph Ford






Fecha de nacimiento: 25 de octubre de 1886

Lugar de nacimiento: Missouri


 El papel de Ford con DR Fulkerson  en el problema de flujo máximo y el algoritmo de Ford-Fulkerson para resolverlo, publicado como un informe técnico en 1954 y en un diario en 1956, estableció el máximo de flujo min de corte teorema.

 Con Richard Bellman, Ford también desarrolló el algoritmo de Bellman-Fordd para encontrar los caminos más cortoss en los gráficos que tienen bordes negativamente ponderado.




Delbert Ray Fulkerson





Fecha de nacimiento : 14 de agosto de 1924
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.
Fulkerson recibió su doctorado en la Universidad de Wisconsin-Madison en 1951. Fue entonces, con el departamento de matemáticas de 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 con en el algoritmo de Ford-Fulkerson, junto con Lester Randolph Ford. 

El Premio Fulkerson para los papeles destacados en el área de la matemática discreta está patrocinado conjuntamente por la Sociedad Matemática de Programación (MPS) y la American Mathematical Society (AMS).  Este premio nace de la iniciativa de amigos de Fulkerson para fomentar la excelencia matemática en los campos de la investigación ejemplificada por su trabajo. Los premios están financiados por un fondo administrado por MPS. 
Falleció el 10 de enero de 1976.



Referencias :

http://histinf.blogs.upv.es/2010/10/28/dijkstra/
http://www.adeptis.ru/vinci/edsger_dijkstra5.jpg 
http://es.wikipedia.org/wiki/Robert_W._Floyd
http://www.systemcomputing.org/turing%20award/robert_1978/Robert_files/image001.jpg 


lunes, 19 de septiembre de 2011

Tarea 2

Video 





Elaborado por:
* Aquino del Ángel Malú
* Díaz Contreras Austreberto
* Hernández Hernández Arely
* Valverde Flores Alma 

martes, 13 de septiembre de 2011

PRIM


Se le conoce como algoritmo de Prim en honor a uno de sus desarrolladores Robert C. Prim 

Algoritmo de Prim
 
El algoritmo de Prim es un algoritmo perteneciente a la teoría de los grafos para encontrar un árbol recubridor mínimo en un grafo conexo, no dirigido y cuyas aristas están etiquetadas.

En otras palabras, el algoritmo encuentra un subconjunto de aristas que forman un árbol con todos los vértices, donde el peso total de todas las aristas en el árbol es el mínimo posible. Si el grafo no es conexo, entonces el algoritmo encontrará el árbol recubridor mínimo para uno de los componentes conexos que forman dicho grafo no conexo.

El algoritmo fue diseñado en 1930 por el matemático Vojtech Jarnik y luego de manera independiente por el científico computacional Robert C. Prim en 1957 y redescubierto por Dijkstra en 1959. Por esta razón, el algoritmo es también conocido como algoritmo DJP o algoritmo de Jarnik.


Referencia:http://es.wikipedia.org/wikiAlgoritmo_de_Prim 

jueves, 8 de septiembre de 2011

Participación 10

Suponga las siguientes redes, plantear los modelos de programación lineal y tabla de transporte:

a) Red


 Modelo de Programación Lineal:
 
Min Z= X13+ 6X35+… +8X46

X13+ X14= 100

X23+ X24=200

X34+ X35= X13+ X23+ X43

X43+ X45+ X46= X14+ X24+ X34

X35+ X45=150

X46+ X56=150

XIJ O  XIJ ϵ Z

Tabla de transporte: 



b) Red

Modelo de Programación Lineal:


Min Z= X14+ .5X15+… +1.9X58

X14+ X15= 900

X24+ X25= 1400

X34+ X35= 1000

X14+ X24 + X34 = X45+ X46 + X47 + X48

X15+ X25+ X35 = X56+ X57 + X58

X46+ X56= 1100

X47+ X57= 1000

X48+ X58= 1200

XIJ O  XIJ ϵ Z
 Tabla de trasnporte:



 c) Red :


 Modelo de Programación Lineal:


Min Z= 3X16+ 2X12+… +8X72

X13+ X12= 50 000

X36+ X34= 60 000

X63+ X62 = X16+ X13 + X56

X56+ X57 + X54 = X63 + X75

X75+ X72= X57

X12+ X62 + X72 = 90 000

X14+ X24 = 20 000

XIJ O  XIJ ϵ Z

Tabla de transporte:

 d) Red:



Modelo de Programación Lineal:

Min Z= 5X12+ 3X13+… +13X67

 X12+ X13=1

 X24+ X24 + X25 = X12+ X32


X32+ X34 + X35 + X36= X13+ X23<span style="font-size: large;"> + X63

X45+ X47= X24+ X34 + X54

X54+ X56 + X57 = X25+ 3535 + X45

X63+ X67 =  X36 + X65

X47+ X57 + X67= 1

XIJ O  XIJ ϵ Z

Tabla de transporte:


Participación 8

Hay tres refinerías con capacidad diarias de 6, 5 y 8 millones de galones, respectivamente, que abastecen a tres áreas de distribución cuyas demandas diarias son 4, 8 y 7 millones de galones, respectivamente. La gasolina se transporta por una rede de oleoductos a las tres áreas de distribución. El costo de transporte es de 10 centavos por 1000 galones por milla de oleoducto. En la siguiente tabla se ven las distancias entre refinerías y las áreas de distribución. La refinería 1 no está conectada con el área de distribución 3.
 Red
Modelo de programación lineal:

 Xij = # de galones de la refinería i al área j.

 Min z = 1.2X
11 + 1.8X12 + 3X21 + X22 + .8X23 + 2X31 + 2.5X32 + 1.2X33
 X
11 + X12  = 6 
 X21 + X22 + X23  = 5 
 X31 + X32 + X33 = 8 
 X
11 + X21 + X31  = 4 
 X
12 + X22 + X32  = 8  
 X23 + X33 = 7  

Xij    0  ; Xij  Є  Z 

Solución: 

Buscamos la solución inicial con el Método de Vogel 

 Z=24300000

X
11=4000000
X
12=2000000
X
22=5000000
X
32=1000000
X
33=7000000

Utilizamos el Método de los Multiplicadores para encontrar la solución óptima.

Resultados:

Como se observa la solución inicial, es la solución óptima.
En la siguiente tabla se muestra el abastecimiento de las refinerías: