SlideShare una empresa de Scribd logo
1 de 14
ANALISIS Y DISEÑO DE
ALGORITMO
Jose Lluberes | 16-0586
ALGORITMOS VORACES
“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. ”
CARACTERISTICAS
El conjunto C de candidatos,
entradas del problema.
Función solución. Comprueba, en
cada paso, si el subconjunto
actual de candidatos elegidos
forma una solución (no importa
si es óptima o no lo es).
Función de selección. Informa
cuál es el elemento más
prometedor para completar la
solución. Éste no puede haber
sido escogido con anterioridad.
Cada elemento es considerado
una sola vez. Luego, puede ser
rechazado o aceptado y
Función de factibilidad. Informa
si a partir de un conjunto se
puede llegar a una solución. Lo
aplicaremos al conjunto de
seleccionados unido con el
elemento más prometedor.
Función objetivo. Es aquella que
queremos maximizar o
minimizar, el núcleo del
problema.
ALGORITMOS
PROBABILISTICOS
Un algoritmo probabilista (o
probabilístico) es un algoritmo
que basa su resultado en la toma
de algunas decisiones al azar, de
tal forma que, en promedio,
obtiene una buena solución al
problema planteado para
cualquier distribución de los datos
de entrada. Es decir, al contrario
que un algoritmo determinista, a
partir de unos mismos datos se
pueden obtener distintas
soluciones y, en algunos casos,
soluciones erróneas.
CONSIDERACIONES
I. Se puede optar por la elección aleatoria si se tiene un problema cuya elección óptima es
demasiado costosa frente a la decisión aleatoria. Un algoritmo probabilista puede comportarse de
distinta forma aplicando la misma entrada.
II. A un algoritmo determinista nunca se le permite que no termine: hacer una división por 0, entrar
en un bucle infinito, etc. mientras que a un algoritmo probabilista se le permiten estos casos
siempre que la probabilidad de que ocurran sea baja.
III. Si existe más de una solución para unos datos dados, un algoritmo determinista siempre
encuentra la misma solución (a no ser que se programe para encontrar varias o todas).
IV. Un algoritmo probabilista puede encontrar soluciones diferentes ejecutándose varias veces con
los mismos datos.
V. A un algoritmo determinista no se le permite que calcule una solución incorrecta para ningún
dato.
VI. Un algoritmo probabilista puede equivocarse siempre que esto ocurra con una probabilidad
pequeña para cada dato de entrada.
VII. Repitiendo la ejecución un número suficiente de veces para el mismo dato, puede aumentarse
tanto como se quiera el grado de confianza en obtener la solución correcta.
VIII. El análisis de la eficiencia de un algoritmo determinista es, en determinadas ocasiones, difícil.
IX. El análisis de los algoritmos probabilistas es, a menudo, muy difícil.
ALGORITMOS PROBABILISTICOS
MAS UTILIZADOS
A. Algoritmos de Montecarlo
B. Algoritmos de Las Vegas
ALGORITMOS
GEOMETRICOS
Los algoritmos geométricos operan sobre
objetos
geométricos tales como puntos, segmentos
o polígonos.
Analizaremos algoritmos en dos
dimensiones en los
que cada objeto geométrico es
representado como un
conjunto de puntos {pi} donde pi=(xi,yi) con
xi, yi ∈
R
Por ejemplo, un polígono de n vértices es
representado por una secuencia <p
0,p
1,…pn-1> de sus
vértices.
ALGORITMOS GEOMETRICOS
Segmento
Dados dos puntos p 1 y p 2, el segmento p 1 p 2 es el conjunto de
combinaciones convexas de p 1 y p 2 .
Vector
Un segmento orientado entre p 1 y p 2 se denota p 1 p 2. Si p 1 es el
origen (0,0) p 1 p 2 es el vector p 2
ALGORITMOS PARALELOS
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.
ALGORITMOS PARALELOS
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. Pero hay
que ser cauto con la excesiva paralelización de los algoritmos ya que cada
algoritmo paralelo tiene una parte secuencial y debido a esto, los algoritmos
paralelos puedes llegar a un punto de saturación (ver Ley de Amdahl). Por
todo esto, a partir de cierto nivel de paralelismo, añadir más unidades de
procesamiento puede sólo incrementar el coste y la disipación de calor.
El coste o complejidad de los algoritmos secuenciales se estima en términos
del espacio (memoria) y tiempo (ciclos de procesador) que requiera. Los
algoritmos paralelos también necesitan optimizar la comunicación entre
diferentes unidades de procesamiento. Esto se consigue mediante la
aplicación de dos paradigmas de programación y diseño de procesadores
distintos: memoria compartida o paso de mensajes.
ALGORITMOS DE TIEMPO
REAL
Los sistemas de tiempo real se clasifican
en general en dos tipos dependiendo de
lo serio de sus tiempos límite y de las
consecuencias de omitir uno de ellos.
Estos son:
Sistema de tiempo real suave.
Sistema de tiempo real duro.
El tiempo real suave significa que no
existe problema si se rebasa un tiempo
límite. Un sistema de tiempo real duro es
aquel en el que un tiempo límite no
cumplido puede resultar catastrófico.
CARACTERISTICAS
Garantiza que las tareas críticas se terminen a tiempo.
· Requiere que todos los retardos del sistema estén limitados.
· Tales restricciones de tiempo determinan los recursos que están
disponibles en este tipo de sistemas.
· Para este tipo de sistema el almacenamiento secundario suele ser
limitado o ausente.
· Los datos se almacenan en la memoria de corto plazo o memoria de
solo lectura.
· Son incompatibles con el funcionamiento de los sistemas de tiempo
compartido y no pueden combinarse con ellos.
ALGORITMOS GENETICOS
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.
La antena 2006 de la nave espacial de la
NASA ST5. Esta forma complicada fue
encontrada por un programa evolutivo del
diseño de computadora para crear el mejor
patrón de la radiación. Se conoce como una
antena evolucionada.
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, (AG) Son
llamados así porque se inspiran en la
ALGORITMOS
GENETICOS
A. Un algoritmo genético puede presentar diversas variaciones, dependiendo de
cómo se aplican los operadores genéticos (cruzamiento, mutación), de cómo se
realiza la selección y de cómo se decide el reemplazo de los individuos para
formar la nueva población. En general, el pseudocódigo consiste de los
siguientes pasos:
B. Inicialización: Se genera aleatoriamente la población inicial, que está constituida
por un conjunto de cromosomas los cuales representan las posibles soluciones
del problema. En caso de no hacerlo aleatoriamente, es importante garantizar
que dentro de la población inicial, se tenga la diversidad estructural de estas
soluciones para tener una representación de la mayor parte de la población
posible o al menos evitar la convergencia prematura.
C. Evaluación: A cada uno de los cromosomas de esta población se aplicará la
función de aptitud para saber cómo de "buena" es la solución que se está
codificando.
D. Condición de término: El AG se deberá detener cuando se alcance la solución
óptima, pero esta generalmente se desconoce, por lo que se deben utilizar otros
criterios de detención. Normalmente se usan dos criterios: correr el AG un
número máximo de iteraciones (generaciones) o detenerlo cuando no haya
cambios en la población. Mientras no se cumpla la condición de término se hace
lo siguiente:
E. Selección: Después de saber la aptitud de cada cromosoma se procede a elegir
los cromosomas que serán cruzados en la siguiente generación. Los
cromosomas con mejor aptitud tienen mayor probabilidad de ser seleccionados.
F. Recombinación o cruzamiento: La recombinación es el principal operador
genético, representa la reproducción sexual, opera sobre dos cromosomas a la
vez para generar dos descendientes donde se combinan las características de
ambos cromosomas padres.
G. Mutación: Modifica al azar parte del cromosoma de los individuos, y permite

Más contenido relacionado

La actualidad más candente

Clasificacion de los problemas
Clasificacion de los problemasClasificacion de los problemas
Clasificacion de los problemasJohnfornerod
 
Clasificacion de los problemas
Clasificacion de los problemasClasificacion de los problemas
Clasificacion de los problemasSergio Ormeño
 
SICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOSSICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOSlorenapardo
 
6 sincronizacion de_procesos
6 sincronizacion de_procesos6 sincronizacion de_procesos
6 sincronizacion de_procesosKaren Navarro
 
Tipos de modelo de simulacion
Tipos de modelo de simulacionTipos de modelo de simulacion
Tipos de modelo de simulacionDoritos_xD
 
Simulación de variables aleatorias
Simulación de variables aleatoriasSimulación de variables aleatorias
Simulación de variables aleatoriasJuan Lizaldes
 
Guía de estudio algoritmos en dfd
Guía de estudio algoritmos en dfdGuía de estudio algoritmos en dfd
Guía de estudio algoritmos en dfdgeosam
 
Análisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos Análisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos linuxsanchez
 
Algoritmo de dekker
Algoritmo de dekkerAlgoritmo de dekker
Algoritmo de dekkerJuanFrank13
 
Cuadro comparativo tipos de busquedas en IA
Cuadro comparativo tipos de busquedas en IACuadro comparativo tipos de busquedas en IA
Cuadro comparativo tipos de busquedas en IAluisilva18
 
Ensayo de métodos numéricos
Ensayo de métodos numéricos Ensayo de métodos numéricos
Ensayo de métodos numéricos Brujita MoOxa
 
Principios de modelado y simulación
Principios de modelado y simulaciónPrincipios de modelado y simulación
Principios de modelado y simulaciónJosé Ordóñez
 
Complejidad de algoritmos
Complejidad de algoritmosComplejidad de algoritmos
Complejidad de algoritmosJonathan Garcia
 
Algoritmos de dekker
Algoritmos de dekkerAlgoritmos de dekker
Algoritmos de dekkernerexi
 

La actualidad más candente (20)

Clasificacion de los problemas
Clasificacion de los problemasClasificacion de los problemas
Clasificacion de los problemas
 
Wordpress
WordpressWordpress
Wordpress
 
Clasificacion de los problemas
Clasificacion de los problemasClasificacion de los problemas
Clasificacion de los problemas
 
Parte1
Parte1Parte1
Parte1
 
SICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOSSICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOS
 
6 sincronizacion de_procesos
6 sincronizacion de_procesos6 sincronizacion de_procesos
6 sincronizacion de_procesos
 
Simulaunoitrm
SimulaunoitrmSimulaunoitrm
Simulaunoitrm
 
Tipos de modelo de simulacion
Tipos de modelo de simulacionTipos de modelo de simulacion
Tipos de modelo de simulacion
 
Desarollo de sofware con algoritmos genéticos
Desarollo de sofware con algoritmos genéticosDesarollo de sofware con algoritmos genéticos
Desarollo de sofware con algoritmos genéticos
 
Simulación de variables aleatorias
Simulación de variables aleatoriasSimulación de variables aleatorias
Simulación de variables aleatorias
 
Guía de estudio algoritmos en dfd
Guía de estudio algoritmos en dfdGuía de estudio algoritmos en dfd
Guía de estudio algoritmos en dfd
 
Análisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos Análisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos
 
Algoritmo de dekker
Algoritmo de dekkerAlgoritmo de dekker
Algoritmo de dekker
 
Cuadro comparativo tipos de busquedas en IA
Cuadro comparativo tipos de busquedas en IACuadro comparativo tipos de busquedas en IA
Cuadro comparativo tipos de busquedas en IA
 
Ensayo de métodos numéricos
Ensayo de métodos numéricos Ensayo de métodos numéricos
Ensayo de métodos numéricos
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Principios de modelado y simulación
Principios de modelado y simulaciónPrincipios de modelado y simulación
Principios de modelado y simulación
 
Complejidad de algoritmos
Complejidad de algoritmosComplejidad de algoritmos
Complejidad de algoritmos
 
Algoritmos de dekker
Algoritmos de dekkerAlgoritmos de dekker
Algoritmos de dekker
 
Introducción al modelado - Dinámica de sistemas
Introducción al modelado - Dinámica de sistemasIntroducción al modelado - Dinámica de sistemas
Introducción al modelado - Dinámica de sistemas
 

Similar a Analisis y diseño de algoritmo

Similar a Analisis y diseño de algoritmo (20)

Algoritmos Voraces (Greedy)
Algoritmos Voraces (Greedy)Algoritmos Voraces (Greedy)
Algoritmos Voraces (Greedy)
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmo Genético
Algoritmo GenéticoAlgoritmo Genético
Algoritmo Genético
 
Algoritmo Genético
Algoritmo GenéticoAlgoritmo Genético
Algoritmo Genético
 
voras.pptx
voras.pptxvoras.pptx
voras.pptx
 
Estructuras_F_CAT
Estructuras_F_CATEstructuras_F_CAT
Estructuras_F_CAT
 
Algoritmos geneticos
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticos
 
Unidad 7
Unidad 7Unidad 7
Unidad 7
 
Unidad 7
Unidad 7Unidad 7
Unidad 7
 
Analisis y-diseño-de-algoritmos
Analisis y-diseño-de-algoritmosAnalisis y-diseño-de-algoritmos
Analisis y-diseño-de-algoritmos
 
Unidad 7
Unidad 7Unidad 7
Unidad 7
 
Trabajo algoritmo genetico uba
Trabajo algoritmo genetico uba Trabajo algoritmo genetico uba
Trabajo algoritmo genetico uba
 
Analisis y diseño de algoritmos
Analisis y diseño de algoritmosAnalisis y diseño de algoritmos
Analisis y diseño de algoritmos
 
Statgraphics centurion
Statgraphics centurionStatgraphics centurion
Statgraphics centurion
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
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
 
UNIDAD 5 - Algoritmia.pdf
UNIDAD 5 - Algoritmia.pdfUNIDAD 5 - Algoritmia.pdf
UNIDAD 5 - Algoritmia.pdf
 
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
 

Último

Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 

Último (7)

Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 

Analisis y diseño de algoritmo

  • 1. ANALISIS Y DISEÑO DE ALGORITMO Jose Lluberes | 16-0586
  • 2. ALGORITMOS VORACES “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. ”
  • 3. CARACTERISTICAS El conjunto C de candidatos, entradas del problema. Función solución. Comprueba, en cada paso, si el subconjunto actual de candidatos elegidos forma una solución (no importa si es óptima o no lo es). Función de selección. Informa cuál es el elemento más prometedor para completar la solución. Éste no puede haber sido escogido con anterioridad. Cada elemento es considerado una sola vez. Luego, puede ser rechazado o aceptado y Función de factibilidad. Informa si a partir de un conjunto se puede llegar a una solución. Lo aplicaremos al conjunto de seleccionados unido con el elemento más prometedor. Función objetivo. Es aquella que queremos maximizar o minimizar, el núcleo del problema.
  • 4. ALGORITMOS PROBABILISTICOS Un algoritmo probabilista (o probabilístico) es un algoritmo que basa su resultado en la toma de algunas decisiones al azar, de tal forma que, en promedio, obtiene una buena solución al problema planteado para cualquier distribución de los datos de entrada. Es decir, al contrario que un algoritmo determinista, a partir de unos mismos datos se pueden obtener distintas soluciones y, en algunos casos, soluciones erróneas.
  • 5. CONSIDERACIONES I. Se puede optar por la elección aleatoria si se tiene un problema cuya elección óptima es demasiado costosa frente a la decisión aleatoria. Un algoritmo probabilista puede comportarse de distinta forma aplicando la misma entrada. II. A un algoritmo determinista nunca se le permite que no termine: hacer una división por 0, entrar en un bucle infinito, etc. mientras que a un algoritmo probabilista se le permiten estos casos siempre que la probabilidad de que ocurran sea baja. III. Si existe más de una solución para unos datos dados, un algoritmo determinista siempre encuentra la misma solución (a no ser que se programe para encontrar varias o todas). IV. Un algoritmo probabilista puede encontrar soluciones diferentes ejecutándose varias veces con los mismos datos. V. A un algoritmo determinista no se le permite que calcule una solución incorrecta para ningún dato. VI. Un algoritmo probabilista puede equivocarse siempre que esto ocurra con una probabilidad pequeña para cada dato de entrada. VII. Repitiendo la ejecución un número suficiente de veces para el mismo dato, puede aumentarse tanto como se quiera el grado de confianza en obtener la solución correcta. VIII. El análisis de la eficiencia de un algoritmo determinista es, en determinadas ocasiones, difícil. IX. El análisis de los algoritmos probabilistas es, a menudo, muy difícil.
  • 6. ALGORITMOS PROBABILISTICOS MAS UTILIZADOS A. Algoritmos de Montecarlo B. Algoritmos de Las Vegas
  • 7. ALGORITMOS GEOMETRICOS Los algoritmos geométricos operan sobre objetos geométricos tales como puntos, segmentos o polígonos. Analizaremos algoritmos en dos dimensiones en los que cada objeto geométrico es representado como un conjunto de puntos {pi} donde pi=(xi,yi) con xi, yi ∈ R Por ejemplo, un polígono de n vértices es representado por una secuencia <p 0,p 1,…pn-1> de sus vértices.
  • 8. ALGORITMOS GEOMETRICOS Segmento Dados dos puntos p 1 y p 2, el segmento p 1 p 2 es el conjunto de combinaciones convexas de p 1 y p 2 . Vector Un segmento orientado entre p 1 y p 2 se denota p 1 p 2. Si p 1 es el origen (0,0) p 1 p 2 es el vector p 2
  • 9. ALGORITMOS PARALELOS 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.
  • 10. ALGORITMOS PARALELOS 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. Pero hay que ser cauto con la excesiva paralelización de los algoritmos ya que cada algoritmo paralelo tiene una parte secuencial y debido a esto, los algoritmos paralelos puedes llegar a un punto de saturación (ver Ley de Amdahl). Por todo esto, a partir de cierto nivel de paralelismo, añadir más unidades de procesamiento puede sólo incrementar el coste y la disipación de calor. El coste o complejidad de los algoritmos secuenciales se estima en términos del espacio (memoria) y tiempo (ciclos de procesador) que requiera. Los algoritmos paralelos también necesitan optimizar la comunicación entre diferentes unidades de procesamiento. Esto se consigue mediante la aplicación de dos paradigmas de programación y diseño de procesadores distintos: memoria compartida o paso de mensajes.
  • 11. ALGORITMOS DE TIEMPO REAL Los sistemas de tiempo real se clasifican en general en dos tipos dependiendo de lo serio de sus tiempos límite y de las consecuencias de omitir uno de ellos. Estos son: Sistema de tiempo real suave. Sistema de tiempo real duro. El tiempo real suave significa que no existe problema si se rebasa un tiempo límite. Un sistema de tiempo real duro es aquel en el que un tiempo límite no cumplido puede resultar catastrófico.
  • 12. CARACTERISTICAS Garantiza que las tareas críticas se terminen a tiempo. · Requiere que todos los retardos del sistema estén limitados. · Tales restricciones de tiempo determinan los recursos que están disponibles en este tipo de sistemas. · Para este tipo de sistema el almacenamiento secundario suele ser limitado o ausente. · Los datos se almacenan en la memoria de corto plazo o memoria de solo lectura. · Son incompatibles con el funcionamiento de los sistemas de tiempo compartido y no pueden combinarse con ellos.
  • 13. ALGORITMOS GENETICOS 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. La antena 2006 de la nave espacial de la NASA ST5. Esta forma complicada fue encontrada por un programa evolutivo del diseño de computadora para crear el mejor patrón de la radiación. Se conoce como una antena evolucionada. 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, (AG) Son llamados así porque se inspiran en la
  • 14. ALGORITMOS GENETICOS A. Un algoritmo genético puede presentar diversas variaciones, dependiendo de cómo se aplican los operadores genéticos (cruzamiento, mutación), de cómo se realiza la selección y de cómo se decide el reemplazo de los individuos para formar la nueva población. En general, el pseudocódigo consiste de los siguientes pasos: B. Inicialización: Se genera aleatoriamente la población inicial, que está constituida por un conjunto de cromosomas los cuales representan las posibles soluciones del problema. En caso de no hacerlo aleatoriamente, es importante garantizar que dentro de la población inicial, se tenga la diversidad estructural de estas soluciones para tener una representación de la mayor parte de la población posible o al menos evitar la convergencia prematura. C. Evaluación: A cada uno de los cromosomas de esta población se aplicará la función de aptitud para saber cómo de "buena" es la solución que se está codificando. D. Condición de término: El AG se deberá detener cuando se alcance la solución óptima, pero esta generalmente se desconoce, por lo que se deben utilizar otros criterios de detención. Normalmente se usan dos criterios: correr el AG un número máximo de iteraciones (generaciones) o detenerlo cuando no haya cambios en la población. Mientras no se cumpla la condición de término se hace lo siguiente: E. Selección: Después de saber la aptitud de cada cromosoma se procede a elegir los cromosomas que serán cruzados en la siguiente generación. Los cromosomas con mejor aptitud tienen mayor probabilidad de ser seleccionados. F. Recombinación o cruzamiento: La recombinación es el principal operador genético, representa la reproducción sexual, opera sobre dos cromosomas a la vez para generar dos descendientes donde se combinan las características de ambos cromosomas padres. G. Mutación: Modifica al azar parte del cromosoma de los individuos, y permite