SlideShare una empresa de Scribd logo
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

Más contenido relacionado

La actualidad más candente

1.3 Captura básica de cadenas en ensamblador.pptx
1.3 Captura básica de cadenas en ensamblador.pptx1.3 Captura básica de cadenas en ensamblador.pptx
1.3 Captura básica de cadenas en ensamblador.pptx
EmanuelMuoz11
 
Maquina de turing y resolubilidad e Irresolubilidad
Maquina de turing y resolubilidad e IrresolubilidadMaquina de turing y resolubilidad e Irresolubilidad
Maquina de turing y resolubilidad e Irresolubilidad
lluis31
 
5.comprensión de los requerimientos
5.comprensión de los requerimientos5.comprensión de los requerimientos
5.comprensión de los requerimientos
Ramiro Estigarribia Canese
 
Agentes inteligentes
Agentes inteligentesAgentes inteligentes
Agentes inteligentes
Jefferson Guillen
 
Diseño algorítmico
Diseño algorítmicoDiseño algorítmico
Diseño algorítmico
oviedospablo
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
YESENIA CETINA
 
Gramaticas de Chomsky
Gramaticas de ChomskyGramaticas de Chomsky
Gramaticas de Chomsky
Bertha Vega
 
Lenguajes Decidibles
Lenguajes DecidiblesLenguajes Decidibles
Lenguajes Decidiblesrehoscript
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretes
Israel Castillo Cruz
 
Memorias semiconductoras
Memorias semiconductorasMemorias semiconductoras
Memorias semiconductoras
Marita Valderrama
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Humano Terricola
 
Autómata de pila (AP)
Autómata de pila (AP)Autómata de pila (AP)
Autómata de pila (AP)
Rodrigo GC
 
Teoria de automatas
Teoria de automatasTeoria de automatas
Teoria de automatas
Pedro Roman
 
Razonamiento con incertidumbre
Razonamiento con incertidumbreRazonamiento con incertidumbre
Razonamiento con incertidumbre
Basilio Calixto Calderon
 
Procesos
ProcesosProcesos
preguntas y respuestas
preguntas y respuestas preguntas y respuestas
preguntas y respuestas
Sarahi Garcia Ruiz
 
Ingenieria de requerimientos
Ingenieria de requerimientosIngenieria de requerimientos
Ingenieria de requerimientos
Tensor
 

La actualidad más candente (20)

1.3 Captura básica de cadenas en ensamblador.pptx
1.3 Captura básica de cadenas en ensamblador.pptx1.3 Captura básica de cadenas en ensamblador.pptx
1.3 Captura básica de cadenas en ensamblador.pptx
 
Maquina de turing y resolubilidad e Irresolubilidad
Maquina de turing y resolubilidad e IrresolubilidadMaquina de turing y resolubilidad e Irresolubilidad
Maquina de turing y resolubilidad e Irresolubilidad
 
5.comprensión de los requerimientos
5.comprensión de los requerimientos5.comprensión de los requerimientos
5.comprensión de los requerimientos
 
Agentes inteligentes
Agentes inteligentesAgentes inteligentes
Agentes inteligentes
 
Dijkstra
DijkstraDijkstra
Dijkstra
 
Diseño algorítmico
Diseño algorítmicoDiseño algorítmico
Diseño algorítmico
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Lógica Difusa
Lógica DifusaLógica Difusa
Lógica Difusa
 
Gramaticas de Chomsky
Gramaticas de ChomskyGramaticas de Chomsky
Gramaticas de Chomsky
 
Lenguajes Decidibles
Lenguajes DecidiblesLenguajes Decidibles
Lenguajes Decidibles
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretes
 
Memorias semiconductoras
Memorias semiconductorasMemorias semiconductoras
Memorias semiconductoras
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
 
Tema4
Tema4Tema4
Tema4
 
Autómata de pila (AP)
Autómata de pila (AP)Autómata de pila (AP)
Autómata de pila (AP)
 
Teoria de automatas
Teoria de automatasTeoria de automatas
Teoria de automatas
 
Razonamiento con incertidumbre
Razonamiento con incertidumbreRazonamiento con incertidumbre
Razonamiento con incertidumbre
 
Procesos
ProcesosProcesos
Procesos
 
preguntas y respuestas
preguntas y respuestas preguntas y respuestas
preguntas y respuestas
 
Ingenieria de requerimientos
Ingenieria de requerimientosIngenieria de requerimientos
Ingenieria de requerimientos
 

Similar a Análisis y Diseño de Algoritmos

Analisis y diseño de algoritmo
Analisis y diseño de algoritmoAnalisis y diseño de algoritmo
Analisis y diseño de algoritmo
Jose Lluberes
 
Comcepto de algoritmos
Comcepto de algoritmosComcepto de algoritmos
Comcepto de algoritmos
yaritzacolumba19
 
Comcepto de algoritmos
Comcepto de algoritmosComcepto de algoritmos
Comcepto de algoritmos
Lady Campoverde Sanchez
 
Comcepto de algoritmos
Comcepto de algoritmosComcepto de algoritmos
Comcepto de algoritmos
yaritzacolumba19
 
Pro no num Prog dinamica
Pro no num Prog dinamicaPro no num Prog dinamica
Pro no num Prog dinamica
Ruben Gonzalez
 
Yaritza columba
Yaritza columbaYaritza columba
Yaritza columba
yaritzacolumba19
 
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 2010Vanessa Santiago
 
Cap1.3
Cap1.3Cap1.3
Algoritmo
AlgoritmoAlgoritmo
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
sherlynsyta
 
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
Alexandra Ochoa
 
Técnicas de Diseño Detallado.
Técnicas de Diseño Detallado.Técnicas de Diseño Detallado.
Técnicas de Diseño Detallado.
guestdf1874
 
Infoalgoritmo
InfoalgoritmoInfoalgoritmo
Infoalgoritmo
danielkrack
 
voras.pptx
voras.pptxvoras.pptx
voras.pptx
Ivan Esmit Mayhua
 
Unidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptUnidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.ppt
ssuser6eba56
 

Similar a Análisis y Diseño de Algoritmos (20)

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
 
Infoalgoritmo
InfoalgoritmoInfoalgoritmo
Infoalgoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
voras.pptx
voras.pptxvoras.pptx
voras.pptx
 
Unidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptUnidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.ppt
 

Último

EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 

Último (20)

EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 

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.