SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

Modelo de prototipos
Modelo de prototiposModelo de prototipos
Modelo de prototipos
cetic2008
 
Arboles de derivacion
Arboles de derivacionArboles de derivacion
Arboles de derivacion
Luis Couoh
 
Protocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modemProtocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modem
Mirna L. Torres Garcia
 
Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamica
narlyn diaz
 
Equipo 6 programacion hibrida
Equipo 6 programacion hibridaEquipo 6 programacion hibrida
Equipo 6 programacion hibrida
gabo
 
Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++
Alincita Simon
 
Problema de la ocho reinas. Implementación en Prolog.
Problema de la ocho reinas. Implementación en Prolog.Problema de la ocho reinas. Implementación en Prolog.
Problema de la ocho reinas. Implementación en Prolog.
Mayra Villanueva
 

Tendances (20)

Lenguajes de simulación
Lenguajes de simulaciónLenguajes de simulación
Lenguajes de simulación
 
Autómatas y complejidad
Autómatas y complejidadAutómatas y complejidad
Autómatas y complejidad
 
Razonamiento monotono
Razonamiento monotonoRazonamiento monotono
Razonamiento monotono
 
Modelo de prototipos
Modelo de prototiposModelo de prototipos
Modelo de prototipos
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Arboles de derivacion
Arboles de derivacionArboles de derivacion
Arboles de derivacion
 
Protocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modemProtocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modem
 
S2-POO-1.2 Representación Gráfica
S2-POO-1.2 Representación GráficaS2-POO-1.2 Representación Gráfica
S2-POO-1.2 Representación Gráfica
 
Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamica
 
Equipo 6 programacion hibrida
Equipo 6 programacion hibridaEquipo 6 programacion hibrida
Equipo 6 programacion hibrida
 
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrolloFundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
 
Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++
 
Programa ensamblador fibonacci
Programa ensamblador fibonacciPrograma ensamblador fibonacci
Programa ensamblador fibonacci
 
Ingeniería de software modelo incremental
Ingeniería de software  modelo incrementalIngeniería de software  modelo incremental
Ingeniería de software modelo incremental
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
 
Metricas del proyecto de Software - introduccion
Metricas del proyecto de Software - introduccionMetricas del proyecto de Software - introduccion
Metricas del proyecto de Software - introduccion
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Problema de la ocho reinas. Implementación en Prolog.
Problema de la ocho reinas. Implementación en Prolog.Problema de la ocho reinas. Implementación en Prolog.
Problema de la ocho reinas. Implementación en Prolog.
 
Topicos Avanzados de Programacion Unidad 1 Eventos
Topicos Avanzados de Programacion Unidad 1 EventosTopicos Avanzados de Programacion Unidad 1 Eventos
Topicos Avanzados de Programacion Unidad 1 Eventos
 
Optimizacion de la busqueda de discos
Optimizacion de la busqueda de discosOptimizacion de la busqueda de discos
Optimizacion de la busqueda de discos
 

Similaire à Análisis y Diseño de Algoritmos

Similaire à Análisis y Diseño de Algoritmos (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
 

Dernier

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Dernier (10)

Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 

Análisis y Diseño de Algoritmos

  • 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.