SlideShare a Scribd company logo
1 of 24
ANÁLISISY DISEÑO
DE ALGORITMOS
Por : RafaelTaveras
AlgoritmoVoraz
■ Un algoritmo voraz es aquel que, para resolver un
determinado problema, sigue una heurística consistente en
elegir la opción óptima en cada paso local con la esperanza de
llegar a una solución general óptima. Este esquema
algorítmico es el que menos dificultades plantea a la hora de
diseñar y comprobar su funcionamiento. Normalmente se
aplica a los problemas de optimización.
Caracterización y Esquema
■ Este tema se dedica a presentar un esquema de resolución de
problemas denominado método Voraz, Greedy Method. Los
algoritmos que se obtienen aplicando este esquema se
denominan, por extensión, algoritmos voraces. El esquema
forma parte de una familia de algoritmos mucho más amplia
denominada ALGORITMOS DE BUSQUEDA LOCAL de la que
también forman parte, por ejemplo, el método del gradiente,
los algoritmos Hill-Climbing, los algoritmos genéticos o los
Simulated Annealing.
■ Un algoritmo voraz determina el mínimo número de monedas que debe devolverse en el
cambio. En la figura se muestran los pasos que un ser humano debería seguir para emular
a un algoritmo voraz para acumular 36 céntimos usando sólo monedas de valores
nominales de 1, 5, 10 y 20. La moneda del mayor valor menor que el resto debido es el
óptimo local en cada paso. Nótese que en general el problema de devolución del cambio
requiere programación dinámica o programación lineal para encontrar una solución
óptima. Sin embargo, en muchos sistemas monetarios, incluyendo el euro y el dólar
estadounidense, son casos especiales donde en la estrategia del algoritmo voraz da con la
solución óptima.
Problema de la mochila
■ Enunciado: "Se tiene una mochila que es capaz de soportar
un peso máximo P, así como un conjunto de objetos, cada
uno de ellos con un peso y un beneficio. La solución pasa por
conseguir introducir el máximo beneficio en la mochila,
eligiendo los objetos adecuados. Cada objeto puede tomarse
completo o fraccionado".
Solución
■ Solución: La forma más simple de saber qué objetos se deben tomar es ordenar
dichos objetos por la relación beneficio / peso de mayor a menor. De esta forma,
tomaremos los objetos con mayor beneficio en este orden hasta que la bolsa se llene,
fraccionando si fuera preciso, el último objeto a tomar.
Algoritmos Probabilísticos
■ Los algoritmos probabilísticos o probabilistas son aquellos que basan el resultado
devuelto en decisiones aleatorias, de tal forma que, en promedio se obtienen una
buena solución al problema planteado, dada una distribución de datos de entrada.
Se pueden distinguir fundamentalmente cuatro grandes categorías:
■ Algoritmos numéricos, que devuelvan una aproximación al resultado,
frecuentemente en forma de intervalo. Son útiles cuando la solución exacta es
demasiado costosa (o directamente imposible de calcular, como, por ejemplo, para
números irracionales) y una aproximación es lo suficientemente buena.
■ Algoritmos de Monte Carlo, que siempre devuelven una solución, aunque está a veces
no sea correcta. Son útiles cuando una aproximación no es suficiente (por ejemplo, en
un problema de decisión).
Clasificación de los algoritmos
probabilísticos;
■ Algoritmos de LasVegas, similares a los de Monte Carlo pero que nunca
devuelven una solución errónea, con el inconveniente de que pueden no
terminar o devolver solución. Esto garantiza que la respuesta sea la buena,
pero no garantiza que el algoritmo funcione.
■ Algoritmos de Sherwood, los cuales devuelven siempre una respuesta, la
cual es forzosamente exacta. Aparecen cuando un algoritmo determinista
conocido es más rápido en el caso medio que en el peor. El uso del azar
permite reducir, e incluso eliminar, la diferencia entre buenos y malos
ejemplares.
Aplicación
■ Una aplicación del teorema de Buffon es utilizarlo para predecir el valor de π. Sea
μ=w/2, entonces p=1/. Si se tira la aguja un número de veces n suficientemente grande
y se cuenta el número k de veces que la aguja toca más de una tira de madera, se
puede estimar el valor de p: k ~ n/p → p ~ n/k.
■ En la práctica, no es un algoritmo útil, porque se pueden obtener aproximaciones de π
mucho mejores empleando métodos deterministas. A pesar de esto, esta
aproximación fue muy utilizada en el siglo XIX, haciendo de éste uno de los primeros
algoritmos probabilistas que se utilizaron.
Algoritmos GeometricosY Aritmeticos
■ Consideramos un “algoritmo” a una secuencia de pasos para resolver un problema
determinado. De tal manera que denominamos “Algoritmos geométricos y
aritméticos” a una cierta clase de algoritmos de solución que abordan el ámbito de la
geometría y aritmética.
■ Por ejemplo, supongamos que deseamos determinar el perímetro y área de un terreno
rectangular. Para ello empleamos diversas fórmulas correspondientes a la figura
geométrica, de tal manera que esta acción implica la ejecución de 2 algoritmos
diferentes.
■ Uno en cuestión del área y el otro en cuestión del perímetro, de tal manera que la
correcta ejecución del mismo implica un resultado en el algoritmo.
■ Esta abstracción es posible gracias al hecho del núcleo de un algoritmo, pues en sí mismo
un “Algoritmo” es un producto de las matemáticas ya que sus bases se encuentran en
está.
Algoritmo Paralelo
■ En las ciencias de la computación, un algoritmo paralelo, en oposición a los algoritmos clásicos
o algoritmos secuenciales, es un algoritmo que puede ser ejecutado por partes en el mismo
instante de tiempo por varias unidades de procesamiento, para finalmente unir todas las partes
y obtener el resultado correcto.
■ Los algoritmos paralelos son importantes porque es más rápido tratar grandes tareas
de computación mediante la paralelización que mediante técnicas secuenciales. Esta
es la forma en que se trabaja en el desarrollo de los procesadores modernos, ya que es
más difícil incrementar la capacidad de procesamiento con un único procesador que
aumentar su capacidad de cómputo mediante la inclusión de unidades en paralelo,
logrando así la ejecución de varios flujos de instrucciones dentro del procesador.
■ Algunos algoritmos son fácilmente divisibles en partes; como, por ejemplo, un
algoritmo que calcule todos los números primos entre 1 y 100, donde se podría dividir
los números originales en subconjuntos y calcular los primos para cada uno de los
subconjuntos de los números originales; al final, uniríamos todos los resultados y
tendríamos la solución final del algoritmo.Otro ejemplo, puede ser el cálculo de Pi en
paralelo.
ALGORITMOTIEMPO REAL
■ Un sistema de tiempo real es uno en el cual el tiempo juega un papel esencial.Típicamente,
se tiene uno o más dispositivos físicos externos al ordenador que generan estímulos a los
cuales debe reaccionar el ordenador de la manera apropiada y dentro de un plazo de
tiempo prefijado. Por ejemplo, el ordenador interno de un reproductor de discos
compactos recibe los bits tal y como salen de la unidad y debe convertirlos en música en un
intervalo de tiempo muy ajustado.
■ Se caracteriza por garantizar que todo programa se ejecutará en un límite máximo de
tiempo. El planificador debe comportarse de manera que esto sea cierto para
cualquier proceso.
■ Los sistemas en tiempo real se clasifican generalmente en sistemas de tiempo real
estricto (hard real time) y sistemas de tiempo real moderado (soft real time).
ALGORITMOTIEMPO REAL
ALGORITMOTIEMPO REAL
■ En los sistemas de tiempo real estricto hay plazos absolutos que deben cumplirse,
pase lo que pase. En los sistemas de tiempo real moderado el incumplimiento
ocasional de un plazo aunque es indeseable, es sin embargo tolerable. En ambos
casos, el comportamiento en tiempo real se logra dividiendo el programa en varios
procesos cuyo comportamiento es predecible y conocido por adelantado.
Algoritmo Genético
■ Un algoritmo es una serie de pasos organizados que describe el proceso que se debe
seguir, para dar solución a un problema específico.
■ En los años 1970, de la mano de John Henry Holland, surgió una de las líneas más
prometedoras de la inteligencia artificial, la de los algoritmos genéticos. Son llamados
así porque se inspiran en la evolución biológica y su base genético-molecular.
■ Estos algoritmos hacen evolucionar una población de individuos sometiéndola a
acciones aleatorias semejantes a las que actúan en la evolución biológica (mutaciones
y recombinaciones genéticas), así como también a una selección de acuerdo con algún
criterio, en función del cual se decide cuáles son los individuos más adaptados, que
sobreviven, y cuáles los menos aptos, que son descartados.
■ Los algoritmos genéticos se enmarcan dentro de los algoritmos evolutivos, que
incluyen también las estrategias evolutivas, la programación evolutiva y la
programación genética.
Funcionamiento
■ Los algoritmos genéticos (AG) funcionan entre el conjunto de soluciones de un
problema llamado fenotipo, y el conjunto de individuos de una población natural,
codificando la información de cada solución en una cadena, generalmente binaria,
llamada cromosoma. Los símbolos que forman la cadena son llamados genes. Cuando
la representación de los cromosomas se hace con cadenas de dígitos binarios se le
conoce como genotipo. Los cromosomas evolucionan a través de iteraciones,
llamadas generaciones.
Aplicaciones
■ Diseño automatizado, incluyendo investigación en diseño de materiales y diseño
multiobjetivo de componentes automovilísticos: mejor comportamiento ante
choques, ahorros de peso, mejora de aerodinámica, etc.
■ Diseño automatizado de equipamiento industrial.
■ Diseño automatizado de sistemas de comercio en el sector financiero.
■ Construcción de árboles filogenéticos.
■ Optimización de carga de contenedores.
■ Diseño de sistemas de distribución de aguas.
■ Diseño de topologías de circuitos impresos.
Análisis y diseño de algoritmos voraces y genéticos

More Related Content

What's hot

What's hot (20)

Manejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosManejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativos
 
Metodologias Para El Analisis Y Diseño De Sistemas.
Metodologias Para El Analisis Y Diseño De Sistemas.Metodologias Para El Analisis Y Diseño De Sistemas.
Metodologias Para El Analisis Y Diseño De Sistemas.
 
Clases de diagramas causales parte 0
Clases de diagramas causales parte 0Clases de diagramas causales parte 0
Clases de diagramas causales parte 0
 
Proyecto calculadora
Proyecto calculadoraProyecto calculadora
Proyecto calculadora
 
Modelado del sistema
Modelado del sistemaModelado del sistema
Modelado del sistema
 
Diseño de interfaces
Diseño de interfacesDiseño de interfaces
Diseño de interfaces
 
Planificacion de procesos
Planificacion de procesosPlanificacion de procesos
Planificacion de procesos
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
DIAGRAMAS CAUSALES
DIAGRAMAS CAUSALESDIAGRAMAS CAUSALES
DIAGRAMAS CAUSALES
 
Gestores de bases de datos cuadros comparativos
Gestores de bases de datos cuadros comparativosGestores de bases de datos cuadros comparativos
Gestores de bases de datos cuadros comparativos
 
Conceptos de software
Conceptos de softwareConceptos de software
Conceptos de software
 
Caja negra
Caja negraCaja negra
Caja negra
 
Historia de la programacion
Historia de la programacionHistoria de la programacion
Historia de la programacion
 
Complejidad del software 2
Complejidad del software 2Complejidad del software 2
Complejidad del software 2
 
Modelos de Simulacion
Modelos de SimulacionModelos de Simulacion
Modelos de Simulacion
 
2 como simular
2 como simular2 como simular
2 como simular
 
Teoria general de sistemas
Teoria general de sistemasTeoria general de sistemas
Teoria general de sistemas
 
PRUEBAS Y DEPURACIÓN
PRUEBAS Y DEPURACIÓNPRUEBAS Y DEPURACIÓN
PRUEBAS Y DEPURACIÓN
 
Arquitectura de computadores
Arquitectura de computadoresArquitectura de computadores
Arquitectura de computadores
 
Modelo incremental
Modelo incrementalModelo incremental
Modelo incremental
 

Similar to Análisis y diseño de algoritmos voraces y genéticos

Similar to Análisis y diseño de algoritmos voraces y genéticos (20)

Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Analisis y diseño de algoritmo
Analisis y diseño de algoritmoAnalisis y diseño de algoritmo
Analisis y diseño de algoritmo
 
Resumen de algoritmo
Resumen de algoritmoResumen de algoritmo
Resumen de algoritmo
 
Comcepto de algoritmos
Comcepto de algoritmosComcepto de algoritmos
Comcepto de algoritmos
 
Comcepto de algoritmos
Comcepto de algoritmosComcepto de algoritmos
Comcepto de algoritmos
 
Comcepto de algoritmos
Comcepto de algoritmosComcepto de algoritmos
Comcepto de algoritmos
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Pro no num Prog dinamica
Pro no num Prog dinamicaPro no num Prog dinamica
Pro no num Prog dinamica
 
Yaritza columba
Yaritza columbaYaritza columba
Yaritza columba
 
La Torre de Hanoi Monografía vanessa mayo 2010
La Torre de Hanoi  Monografía  vanessa mayo 2010La Torre de Hanoi  Monografía  vanessa mayo 2010
La Torre de Hanoi Monografía vanessa mayo 2010
 
Cap1.3
Cap1.3Cap1.3
Cap1.3
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Unidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosUnidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmos
 
Técnicas de Diseño Detallado.
Técnicas de Diseño Detallado.Técnicas de Diseño Detallado.
Técnicas de Diseño Detallado.
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Infoalgoritmo
InfoalgoritmoInfoalgoritmo
Infoalgoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Infoalgoritmo
InfoalgoritmoInfoalgoritmo
Infoalgoritmo
 
voras.pptx
voras.pptxvoras.pptx
voras.pptx
 

Recently uploaded

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 

Recently uploaded (10)

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

Análisis y diseño de algoritmos voraces y genéticos

  • 2. AlgoritmoVoraz ■ Un algoritmo voraz es aquel que, para resolver un determinado problema, sigue una heurística consistente en elegir la opción óptima en cada paso local con la esperanza de llegar a una solución general óptima. Este esquema algorítmico es el que menos dificultades plantea a la hora de diseñar y comprobar su funcionamiento. Normalmente se aplica a los problemas de optimización.
  • 3. Caracterización y Esquema ■ Este tema se dedica a presentar un esquema de resolución de problemas denominado método Voraz, Greedy Method. Los algoritmos que se obtienen aplicando este esquema se denominan, por extensión, algoritmos voraces. El esquema forma parte de una familia de algoritmos mucho más amplia denominada ALGORITMOS DE BUSQUEDA LOCAL de la que también forman parte, por ejemplo, el método del gradiente, los algoritmos Hill-Climbing, los algoritmos genéticos o los Simulated Annealing.
  • 4. ■ Un algoritmo voraz determina el mínimo número de monedas que debe devolverse en el cambio. En la figura se muestran los pasos que un ser humano debería seguir para emular a un algoritmo voraz para acumular 36 céntimos usando sólo monedas de valores nominales de 1, 5, 10 y 20. La moneda del mayor valor menor que el resto debido es el óptimo local en cada paso. Nótese que en general el problema de devolución del cambio requiere programación dinámica o programación lineal para encontrar una solución óptima. Sin embargo, en muchos sistemas monetarios, incluyendo el euro y el dólar estadounidense, son casos especiales donde en la estrategia del algoritmo voraz da con la solución óptima.
  • 5. Problema de la mochila ■ Enunciado: "Se tiene una mochila que es capaz de soportar un peso máximo P, así como un conjunto de objetos, cada uno de ellos con un peso y un beneficio. La solución pasa por conseguir introducir el máximo beneficio en la mochila, eligiendo los objetos adecuados. Cada objeto puede tomarse completo o fraccionado".
  • 6. Solución ■ Solución: La forma más simple de saber qué objetos se deben tomar es ordenar dichos objetos por la relación beneficio / peso de mayor a menor. De esta forma, tomaremos los objetos con mayor beneficio en este orden hasta que la bolsa se llene, fraccionando si fuera preciso, el último objeto a tomar.
  • 7.
  • 8. Algoritmos Probabilísticos ■ Los algoritmos probabilísticos o probabilistas son aquellos que basan el resultado devuelto en decisiones aleatorias, de tal forma que, en promedio se obtienen una buena solución al problema planteado, dada una distribución de datos de entrada.
  • 9. Se pueden distinguir fundamentalmente cuatro grandes categorías: ■ Algoritmos numéricos, que devuelvan una aproximación al resultado, frecuentemente en forma de intervalo. Son útiles cuando la solución exacta es demasiado costosa (o directamente imposible de calcular, como, por ejemplo, para números irracionales) y una aproximación es lo suficientemente buena. ■ Algoritmos de Monte Carlo, que siempre devuelven una solución, aunque está a veces no sea correcta. Son útiles cuando una aproximación no es suficiente (por ejemplo, en un problema de decisión). Clasificación de los algoritmos probabilísticos;
  • 10. ■ Algoritmos de LasVegas, similares a los de Monte Carlo pero que nunca devuelven una solución errónea, con el inconveniente de que pueden no terminar o devolver solución. Esto garantiza que la respuesta sea la buena, pero no garantiza que el algoritmo funcione. ■ Algoritmos de Sherwood, los cuales devuelven siempre una respuesta, la cual es forzosamente exacta. Aparecen cuando un algoritmo determinista conocido es más rápido en el caso medio que en el peor. El uso del azar permite reducir, e incluso eliminar, la diferencia entre buenos y malos ejemplares.
  • 11. Aplicación ■ Una aplicación del teorema de Buffon es utilizarlo para predecir el valor de π. Sea μ=w/2, entonces p=1/. Si se tira la aguja un número de veces n suficientemente grande y se cuenta el número k de veces que la aguja toca más de una tira de madera, se puede estimar el valor de p: k ~ n/p → p ~ n/k. ■ En la práctica, no es un algoritmo útil, porque se pueden obtener aproximaciones de π mucho mejores empleando métodos deterministas. A pesar de esto, esta aproximación fue muy utilizada en el siglo XIX, haciendo de éste uno de los primeros algoritmos probabilistas que se utilizaron.
  • 12. Algoritmos GeometricosY Aritmeticos ■ Consideramos un “algoritmo” a una secuencia de pasos para resolver un problema determinado. De tal manera que denominamos “Algoritmos geométricos y aritméticos” a una cierta clase de algoritmos de solución que abordan el ámbito de la geometría y aritmética. ■ Por ejemplo, supongamos que deseamos determinar el perímetro y área de un terreno rectangular. Para ello empleamos diversas fórmulas correspondientes a la figura geométrica, de tal manera que esta acción implica la ejecución de 2 algoritmos diferentes.
  • 13. ■ Uno en cuestión del área y el otro en cuestión del perímetro, de tal manera que la correcta ejecución del mismo implica un resultado en el algoritmo. ■ Esta abstracción es posible gracias al hecho del núcleo de un algoritmo, pues en sí mismo un “Algoritmo” es un producto de las matemáticas ya que sus bases se encuentran en está.
  • 14. Algoritmo Paralelo ■ En las ciencias de la computación, un algoritmo paralelo, en oposición a los algoritmos clásicos o algoritmos secuenciales, es un algoritmo que puede ser ejecutado por partes en el mismo instante de tiempo por varias unidades de procesamiento, para finalmente unir todas las partes y obtener el resultado correcto.
  • 15. ■ Los algoritmos paralelos son importantes porque es más rápido tratar grandes tareas de computación mediante la paralelización que mediante técnicas secuenciales. Esta es la forma en que se trabaja en el desarrollo de los procesadores modernos, ya que es más difícil incrementar la capacidad de procesamiento con un único procesador que aumentar su capacidad de cómputo mediante la inclusión de unidades en paralelo, logrando así la ejecución de varios flujos de instrucciones dentro del procesador.
  • 16. ■ Algunos algoritmos son fácilmente divisibles en partes; como, por ejemplo, un algoritmo que calcule todos los números primos entre 1 y 100, donde se podría dividir los números originales en subconjuntos y calcular los primos para cada uno de los subconjuntos de los números originales; al final, uniríamos todos los resultados y tendríamos la solución final del algoritmo.Otro ejemplo, puede ser el cálculo de Pi en paralelo.
  • 17. ALGORITMOTIEMPO REAL ■ Un sistema de tiempo real es uno en el cual el tiempo juega un papel esencial.Típicamente, se tiene uno o más dispositivos físicos externos al ordenador que generan estímulos a los cuales debe reaccionar el ordenador de la manera apropiada y dentro de un plazo de tiempo prefijado. Por ejemplo, el ordenador interno de un reproductor de discos compactos recibe los bits tal y como salen de la unidad y debe convertirlos en música en un intervalo de tiempo muy ajustado.
  • 18. ■ Se caracteriza por garantizar que todo programa se ejecutará en un límite máximo de tiempo. El planificador debe comportarse de manera que esto sea cierto para cualquier proceso. ■ Los sistemas en tiempo real se clasifican generalmente en sistemas de tiempo real estricto (hard real time) y sistemas de tiempo real moderado (soft real time). ALGORITMOTIEMPO REAL
  • 19. ALGORITMOTIEMPO REAL ■ En los sistemas de tiempo real estricto hay plazos absolutos que deben cumplirse, pase lo que pase. En los sistemas de tiempo real moderado el incumplimiento ocasional de un plazo aunque es indeseable, es sin embargo tolerable. En ambos casos, el comportamiento en tiempo real se logra dividiendo el programa en varios procesos cuyo comportamiento es predecible y conocido por adelantado.
  • 20. Algoritmo Genético ■ Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico. ■ En los años 1970, de la mano de John Henry Holland, surgió una de las líneas más prometedoras de la inteligencia artificial, la de los algoritmos genéticos. Son llamados así porque se inspiran en la evolución biológica y su base genético-molecular.
  • 21. ■ Estos algoritmos hacen evolucionar una población de individuos sometiéndola a acciones aleatorias semejantes a las que actúan en la evolución biológica (mutaciones y recombinaciones genéticas), así como también a una selección de acuerdo con algún criterio, en función del cual se decide cuáles son los individuos más adaptados, que sobreviven, y cuáles los menos aptos, que son descartados. ■ Los algoritmos genéticos se enmarcan dentro de los algoritmos evolutivos, que incluyen también las estrategias evolutivas, la programación evolutiva y la programación genética.
  • 22. Funcionamiento ■ Los algoritmos genéticos (AG) funcionan entre el conjunto de soluciones de un problema llamado fenotipo, y el conjunto de individuos de una población natural, codificando la información de cada solución en una cadena, generalmente binaria, llamada cromosoma. Los símbolos que forman la cadena son llamados genes. Cuando la representación de los cromosomas se hace con cadenas de dígitos binarios se le conoce como genotipo. Los cromosomas evolucionan a través de iteraciones, llamadas generaciones.
  • 23. Aplicaciones ■ Diseño automatizado, incluyendo investigación en diseño de materiales y diseño multiobjetivo de componentes automovilísticos: mejor comportamiento ante choques, ahorros de peso, mejora de aerodinámica, etc. ■ Diseño automatizado de equipamiento industrial. ■ Diseño automatizado de sistemas de comercio en el sector financiero. ■ Construcción de árboles filogenéticos. ■ Optimización de carga de contenedores. ■ Diseño de sistemas de distribución de aguas. ■ Diseño de topologías de circuitos impresos.