SlideShare una empresa de Scribd logo
Analisis y Diseño de Algoritmos
Rawel Luciano 16-0511
Tipos de Algoritmos:
• Algoritmos Voraces
• Algoritmos Probabilisticos
• Algoritmos Geometricos
• Algoritmos Paralelos
• Algoritmos de Tiempo Real
• Algoritmos Genetico
Algoritmos Voraces
• Los algoritmos voraces, ávidos o de avance rápido (greedy) se utilizan
normalmente en problemas de optimización, donde una solución está
formada por un conjunto de elementos entre un conjunto de candidatos
(con un orden determinado o no).
• El algoritmo voraz funciona por pasos:
• Partimos de una solución vacía.
• En cada paso se escoge el siguiente elemento para añadir a la solución, entre
los candidatos.
• Una vez tomada esta decisión no se podrá deshacer.
• El algoritmo acabará cuando el conjunto de elementos seleccionados constituya
una solución.
Metodo General
Metodo General
• Funciones:
• solución (S). Comprueba si un conjunto de candidatos es una solución
(independientemente de que sea óptima o no).
• seleccionar (C). Devuelve el elemento más “prometedor” del conjunto de
candidatos pendientes (no seleccionados ni rechazados).
• factible (C). Indica si a partir del conjunto de candidatos C es posible
construir una solución (posiblemente añadiendo otros elementos).
• Insertar un elemento en la solución. Además de la inserción, puede ser
necesario hacer otras cosas.
• Función objetivo (S). Dada una solución devuelve el coste asociado a la
misma (resultado del problema de optimización).
Problema del cambio de monedas
• Disponemos de monedas de distintos valores: de 1, 2, 5, 10, 20 y 50
céntimos de euro, y de 1 y 2 euros.
• Supondremos una cantidad ilimitada de cada una.
• Construir un algoritmo que dada una cantidad P devuelva esa cantidad con
monedas de estos tipos, usando un número mínimo de monedas.
• P. ej.: para devolver 3.89 €: 1 monedas de 2€, 1 moneda de 1€, 1 moneda
de 50 c€, 1 moneda de 20 c€, 3 monedas de 5 c€ y 2 monedas de 2 c€.
• Podemos aplicar la técnica voraz: en cada paso añadir una moneda nueva
a la solución actual, hasta que el valor llegue a P.
C++
• “Supón que una maquina de monedas de 10,5,2,1 y
50 centavos. Debes escribir un programa que decida
cuantas monedas dará de cambio, dando prioridad las
de mayor denominación. Debe recibir como entrada la
cantidad de dar a cambio. Ejemplo: para $40.50
será 4 de 10, 0 de 5, 0 de 2, 0 de 1 y 1 de 50
centavos.”
Algoritmos Probabilisticos
Deja al azar la toma de algunas
decisiones.
• Cuando la decisión óptima
llevaría mucho tiempo.
• Problemas con múltiples soluciones
correctas.
Ejemplos:
• Encontrar el k ésimo menor
elemento de un vector de n
elementos – Problema de las ocho
reinas.
• Encontrar un factor de un número
compuesto
Carcacterísticas de los algoritmos probabilistas:
• Un mismo algoritmo se puede comportar de forma diferente al aplicarse
varias veces a un mismo caso. Su tiempo de ejecución y el resultado
obtenido puede ser diferente.
• Terminación: A diferencia de los algoritmos no probabilistas que no
permiten que se pierda el control (bucle infinito, división por cero,.), los
algoritmos probabilistas si que lo permiten, ya que ante una situación de
bloqueo pueden reiniciarse otravez.
• Resultados erróneos: En algunos casos se permite que los algoritmos
probabilistas produzcan
Clasificación de los algoritmos
probabilistas
• Algoritmos Numéricos, que proporcionan una solución aproximada del
problema.
• Algoritmos de Montecarlo, que pueden dar la respuesta correcta o
respuesta erróneas (con probabilidad baja).
• Algoritmos de Las Vegas, que nunca dan una respuesta incorrecta: o bien
no encuentran la respuesta correcta e informan del fallo.
Algoritmo numérico ejecutado cinco veces:
• “Entre 1490 y 1500.”
• “Entre 1485 y 1495.”
• “Entre 1491 y 1501.”
• “Entre 1480 y 1490.”
• “Entre 1489 y 1499.”
• Aparentemente, la probabilidad de dar un intervalo erróneo es del 20% (1
de cada 5). • Dando más tiempo a la ejecución se podría reducir esa
probabilidad o reducir la anchura del intervalo (a menos de 11 años).
Algoritmo de Monte Carlo ejecutado diez
veces:
• 1492, 1492, 1492, 1491, 1492, 1492, 357 A.C., 1492, 1492, 1492.
• De nuevo un 20% de error. Este porcentaje puede reducirse dando más tiempo
para la ejecución.
• Las respuestas incorrectas pueden ser próximas a la correcta o completamente
desviadas.
Algoritmo de Las Vegas ejecutado diez
veces:
• 1492, 1492, ¡Error!, 1492, 1492, 1492, 1492, 1492, ¡Error!, 1492.
• El algoritmo nunca da una respuesta incorrecta.
• El algoritmo falla con una cierta probabilidad (20% en este caso).
Algoritmos Geometricos
• La geometría computacional es
una rama de la ciencia de la
computación que estudia
algoritmos para resolver
problemas geométricos.
• Aplicaciones Computación gráfica,
CAD (Computer-Aided Design),
robótica, diseño de circuitos
integrados, GIS (Geographic
information System),…
Máximo número de puntos en una recta.
Intersección recta-recta.
Intersección recta-segmento y segmento-
segmento.
Incírculo y circuncírculo de triángulos.
Algoritmos Paralelos
• Los problemas que pueden
resolverse mediante un algoritmo
paralelo son, obviamente, muy
heterogéneos.
• Suelen ser problemas de
complejidad elevada, aún no
perteneciendo al grupo de
problemas intratables (el número
de operaciones crece de forma
rápida –p.e. exponencial– con el
tamaño del problema).
Algoritmos de Tiempo Real
Características Generales
• Usado típicamente para aplicaciones
integradas, normalmente tiene las
siguientes características:
• No utiliza mucha memoria
• Cualquier evento en el soporte físico
puede hacer que se ejecute una tarea
• Multi-arquitectura (código portado a
cualquier tipo de CPU)
• Muchos tienen tiempos de respuesta
predecibles para eventos electrónicos
Se caracterizan por presentar
requisitos especiales en cinco áreas
generales:
• Determinismo
• Sensibilidad
• Control del usuario
• Fiabilidad
• Tolerancia a los fallos
• Son de tiempo compartido
El Paquete Calendar de ADA
Algoritmos Genetico
• First bullet point here
• Second bullet point here
• Third bullet point here
Group
A
Task
1
Task
2
Task
3
Task
4

Más contenido relacionado

La actualidad más candente

Métodos para generar números aleatorios
Métodos para generar números aleatoriosMétodos para generar números aleatorios
Métodos para generar números aleatoriosfabela_c
 
Fundamentos de Pruebas de Software - Introducción
Fundamentos de Pruebas de Software - IntroducciónFundamentos de Pruebas de Software - Introducción
Fundamentos de Pruebas de Software - Introducción
Professional Testing
 
Optimización de Sistemas y Funciones (Conceptos Básicos)
Optimización de Sistemas y Funciones (Conceptos Básicos)Optimización de Sistemas y Funciones (Conceptos Básicos)
Optimización de Sistemas y Funciones (Conceptos Básicos)
michaelvitriago
 
Ordenación Distribución
Ordenación DistribuciónOrdenación Distribución
Ordenación Distribución
Fernando Solis
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de Software
Andrés Felipe Montoya Ríos
 
Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del software
Renny Batista
 
Estimación de Proyectos de Software
Estimación de Proyectos de SoftwareEstimación de Proyectos de Software
Estimación de Proyectos de Software
Andrés Felipe Montoya Ríos
 
Análisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de softwareAnálisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de softwareAngel Reyes
 
Estimación Software por Puntos de Función
Estimación Software por Puntos de FunciónEstimación Software por Puntos de Función
Estimación Software por Puntos de Función
Fundación Universitaria Konrad Lorenz
 
4 Clase Metodologia De Desarrolo De Software
4 Clase Metodologia De Desarrolo De Software4 Clase Metodologia De Desarrolo De Software
4 Clase Metodologia De Desarrolo De SoftwareJulio Pari
 
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
SibilinoAndante
 
10 DiseñO Con Algoritmos GenéTicos
10 DiseñO Con Algoritmos GenéTicos10 DiseñO Con Algoritmos GenéTicos
10 DiseñO Con Algoritmos GenéTicos
ESCOM
 
Árboles Multicamino, B y B+
Árboles Multicamino, B y B+Árboles Multicamino, B y B+
Árboles Multicamino, B y B+
Alvaro Enrique Ruano
 
Tipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialTipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia Artificial
Alan López
 
Diseño caso de pruebas
Diseño caso de pruebasDiseño caso de pruebas
Diseño caso de pruebas
Rocio Camargo Villa
 
Modelos de simulación de sistemas
Modelos de simulación de sistemasModelos de simulación de sistemas
Modelos de simulación de sistemas
Universidad Estatal de Sonora
 
Casos De Uso
Casos De UsoCasos De Uso
Casos De Uso
Marilyn Jaramillo
 

La actualidad más candente (20)

Métodos para generar números aleatorios
Métodos para generar números aleatoriosMétodos para generar números aleatorios
Métodos para generar números aleatorios
 
Fundamentos de Pruebas de Software - Introducción
Fundamentos de Pruebas de Software - IntroducciónFundamentos de Pruebas de Software - Introducción
Fundamentos de Pruebas de Software - Introducción
 
Optimización de Sistemas y Funciones (Conceptos Básicos)
Optimización de Sistemas y Funciones (Conceptos Básicos)Optimización de Sistemas y Funciones (Conceptos Básicos)
Optimización de Sistemas y Funciones (Conceptos Básicos)
 
Ordenación Distribución
Ordenación DistribuciónOrdenación Distribución
Ordenación Distribución
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de Software
 
Calculadora con operaciones básicas en java
Calculadora con operaciones básicas en javaCalculadora con operaciones básicas en java
Calculadora con operaciones básicas en java
 
Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del software
 
Estimación de Proyectos de Software
Estimación de Proyectos de SoftwareEstimación de Proyectos de Software
Estimación de Proyectos de Software
 
Análisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de softwareAnálisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de software
 
Estimación Software por Puntos de Función
Estimación Software por Puntos de FunciónEstimación Software por Puntos de Función
Estimación Software por Puntos de Función
 
4 Clase Metodologia De Desarrolo De Software
4 Clase Metodologia De Desarrolo De Software4 Clase Metodologia De Desarrolo De Software
4 Clase Metodologia De Desarrolo De Software
 
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
 
10 DiseñO Con Algoritmos GenéTicos
10 DiseñO Con Algoritmos GenéTicos10 DiseñO Con Algoritmos GenéTicos
10 DiseñO Con Algoritmos GenéTicos
 
Árboles Multicamino, B y B+
Árboles Multicamino, B y B+Árboles Multicamino, B y B+
Árboles Multicamino, B y B+
 
Desarrollo De Sistemas
Desarrollo De SistemasDesarrollo De Sistemas
Desarrollo De Sistemas
 
La Calidad de Software
La Calidad de SoftwareLa Calidad de Software
La Calidad de Software
 
Tipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialTipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia Artificial
 
Diseño caso de pruebas
Diseño caso de pruebasDiseño caso de pruebas
Diseño caso de pruebas
 
Modelos de simulación de sistemas
Modelos de simulación de sistemasModelos de simulación de sistemas
Modelos de simulación de sistemas
 
Casos De Uso
Casos De UsoCasos De Uso
Casos De Uso
 

Similar a Analisis y diseño de algoritmos

Analisis y-diseño-de-algoritmos
Analisis y-diseño-de-algoritmosAnalisis y-diseño-de-algoritmos
Analisis y-diseño-de-algoritmos
Yared Redman
 
Algoritmos Voraces (Greedy)
Algoritmos Voraces (Greedy)Algoritmos Voraces (Greedy)
Algoritmos Voraces (Greedy)luzenith_g
 
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
 
CÁLCULO Y MANEJO DE ERRORES DE MAX ASUAJE
CÁLCULO Y MANEJO DE ERRORES DE MAX ASUAJECÁLCULO Y MANEJO DE ERRORES DE MAX ASUAJE
CÁLCULO Y MANEJO DE ERRORES DE MAX ASUAJE
fabianaquileshey
 
Analisis numerico
Analisis numericoAnalisis numerico
Analisis numerico
Milagros Lopez
 
Materia: Analisis Numerico
Materia: Analisis NumericoMateria: Analisis Numerico
Materia: Analisis Numerico
Milagros Lopez
 
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
 
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
 
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
 
Numero pseudoaleatorio
Numero pseudoaleatorioNumero pseudoaleatorio
Numero pseudoaleatorioalan moreno
 
Presentacion algoritmos
Presentacion algoritmosPresentacion algoritmos
Presentacion algoritmos
aralylopez88
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
sherlynsyta
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
profecona169
 
Tema1 faa 16_17
Tema1 faa 16_17Tema1 faa 16_17
Tema1 faa 16_17
alexray100
 
1 conceptos algoritmos
1 conceptos algoritmos1 conceptos algoritmos
1 conceptos algoritmos
Leidy Campos
 
Yaritza columba
Yaritza columbaYaritza columba
Yaritza columba
yaritzacolumba19
 
Cap1.3
Cap1.3Cap1.3
Analisis numerico axcel quintero
Analisis numerico axcel quinteroAnalisis numerico axcel quintero
Analisis numerico axcel quinterotareasuft
 

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

Analisis y-diseño-de-algoritmos
Analisis y-diseño-de-algoritmosAnalisis y-diseño-de-algoritmos
Analisis y-diseño-de-algoritmos
 
Algoritmos Voraces (Greedy)
Algoritmos Voraces (Greedy)Algoritmos Voraces (Greedy)
Algoritmos Voraces (Greedy)
 
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
 
CÁLCULO Y MANEJO DE ERRORES DE MAX ASUAJE
CÁLCULO Y MANEJO DE ERRORES DE MAX ASUAJECÁLCULO Y MANEJO DE ERRORES DE MAX ASUAJE
CÁLCULO Y MANEJO DE ERRORES DE MAX ASUAJE
 
Analisis numerico
Analisis numericoAnalisis numerico
Analisis numerico
 
Materia: Analisis Numerico
Materia: Analisis NumericoMateria: Analisis Numerico
Materia: Analisis Numerico
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
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
 
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
 
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
 
Numero pseudoaleatorio
Numero pseudoaleatorioNumero pseudoaleatorio
Numero pseudoaleatorio
 
Presentacion algoritmos
Presentacion algoritmosPresentacion algoritmos
Presentacion algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Tema1 faa 16_17
Tema1 faa 16_17Tema1 faa 16_17
Tema1 faa 16_17
 
1 conceptos algoritmos
1 conceptos algoritmos1 conceptos algoritmos
1 conceptos algoritmos
 
Yaritza columba
Yaritza columbaYaritza columba
Yaritza columba
 
Cap1.3
Cap1.3Cap1.3
Cap1.3
 
Analisis numerico axcel quintero
Analisis numerico axcel quinteroAnalisis numerico axcel quintero
Analisis numerico axcel quintero
 

Último

Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
AbbieDominguezGirond
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
nicromante2000
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
juanjosebarreiro704
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 

Último (6)

Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 

Analisis y diseño de algoritmos

  • 1. Analisis y Diseño de Algoritmos Rawel Luciano 16-0511
  • 2. Tipos de Algoritmos: • Algoritmos Voraces • Algoritmos Probabilisticos • Algoritmos Geometricos • Algoritmos Paralelos • Algoritmos de Tiempo Real • Algoritmos Genetico
  • 3. Algoritmos Voraces • Los algoritmos voraces, ávidos o de avance rápido (greedy) se utilizan normalmente en problemas de optimización, donde una solución está formada por un conjunto de elementos entre un conjunto de candidatos (con un orden determinado o no). • El algoritmo voraz funciona por pasos: • Partimos de una solución vacía. • En cada paso se escoge el siguiente elemento para añadir a la solución, entre los candidatos. • Una vez tomada esta decisión no se podrá deshacer. • El algoritmo acabará cuando el conjunto de elementos seleccionados constituya una solución.
  • 5. Metodo General • Funciones: • solución (S). Comprueba si un conjunto de candidatos es una solución (independientemente de que sea óptima o no). • seleccionar (C). Devuelve el elemento más “prometedor” del conjunto de candidatos pendientes (no seleccionados ni rechazados). • factible (C). Indica si a partir del conjunto de candidatos C es posible construir una solución (posiblemente añadiendo otros elementos). • Insertar un elemento en la solución. Además de la inserción, puede ser necesario hacer otras cosas. • Función objetivo (S). Dada una solución devuelve el coste asociado a la misma (resultado del problema de optimización).
  • 6. Problema del cambio de monedas • Disponemos de monedas de distintos valores: de 1, 2, 5, 10, 20 y 50 céntimos de euro, y de 1 y 2 euros. • Supondremos una cantidad ilimitada de cada una. • Construir un algoritmo que dada una cantidad P devuelva esa cantidad con monedas de estos tipos, usando un número mínimo de monedas. • P. ej.: para devolver 3.89 €: 1 monedas de 2€, 1 moneda de 1€, 1 moneda de 50 c€, 1 moneda de 20 c€, 3 monedas de 5 c€ y 2 monedas de 2 c€. • Podemos aplicar la técnica voraz: en cada paso añadir una moneda nueva a la solución actual, hasta que el valor llegue a P.
  • 7. C++ • “Supón que una maquina de monedas de 10,5,2,1 y 50 centavos. Debes escribir un programa que decida cuantas monedas dará de cambio, dando prioridad las de mayor denominación. Debe recibir como entrada la cantidad de dar a cambio. Ejemplo: para $40.50 será 4 de 10, 0 de 5, 0 de 2, 0 de 1 y 1 de 50 centavos.”
  • 8. Algoritmos Probabilisticos Deja al azar la toma de algunas decisiones. • Cuando la decisión óptima llevaría mucho tiempo. • Problemas con múltiples soluciones correctas. Ejemplos: • Encontrar el k ésimo menor elemento de un vector de n elementos – Problema de las ocho reinas. • Encontrar un factor de un número compuesto
  • 9. Carcacterísticas de los algoritmos probabilistas: • Un mismo algoritmo se puede comportar de forma diferente al aplicarse varias veces a un mismo caso. Su tiempo de ejecución y el resultado obtenido puede ser diferente. • Terminación: A diferencia de los algoritmos no probabilistas que no permiten que se pierda el control (bucle infinito, división por cero,.), los algoritmos probabilistas si que lo permiten, ya que ante una situación de bloqueo pueden reiniciarse otravez. • Resultados erróneos: En algunos casos se permite que los algoritmos probabilistas produzcan
  • 10. Clasificación de los algoritmos probabilistas • Algoritmos Numéricos, que proporcionan una solución aproximada del problema. • Algoritmos de Montecarlo, que pueden dar la respuesta correcta o respuesta erróneas (con probabilidad baja). • Algoritmos de Las Vegas, que nunca dan una respuesta incorrecta: o bien no encuentran la respuesta correcta e informan del fallo.
  • 11.
  • 12. Algoritmo numérico ejecutado cinco veces: • “Entre 1490 y 1500.” • “Entre 1485 y 1495.” • “Entre 1491 y 1501.” • “Entre 1480 y 1490.” • “Entre 1489 y 1499.” • Aparentemente, la probabilidad de dar un intervalo erróneo es del 20% (1 de cada 5). • Dando más tiempo a la ejecución se podría reducir esa probabilidad o reducir la anchura del intervalo (a menos de 11 años).
  • 13. Algoritmo de Monte Carlo ejecutado diez veces: • 1492, 1492, 1492, 1491, 1492, 1492, 357 A.C., 1492, 1492, 1492. • De nuevo un 20% de error. Este porcentaje puede reducirse dando más tiempo para la ejecución. • Las respuestas incorrectas pueden ser próximas a la correcta o completamente desviadas.
  • 14. Algoritmo de Las Vegas ejecutado diez veces: • 1492, 1492, ¡Error!, 1492, 1492, 1492, 1492, 1492, ¡Error!, 1492. • El algoritmo nunca da una respuesta incorrecta. • El algoritmo falla con una cierta probabilidad (20% en este caso).
  • 15. Algoritmos Geometricos • La geometría computacional es una rama de la ciencia de la computación que estudia algoritmos para resolver problemas geométricos. • Aplicaciones Computación gráfica, CAD (Computer-Aided Design), robótica, diseño de circuitos integrados, GIS (Geographic information System),…
  • 16. Máximo número de puntos en una recta.
  • 18. Intersección recta-segmento y segmento- segmento.
  • 19. Incírculo y circuncírculo de triángulos.
  • 20. Algoritmos Paralelos • Los problemas que pueden resolverse mediante un algoritmo paralelo son, obviamente, muy heterogéneos. • Suelen ser problemas de complejidad elevada, aún no perteneciendo al grupo de problemas intratables (el número de operaciones crece de forma rápida –p.e. exponencial– con el tamaño del problema).
  • 21.
  • 22.
  • 23.
  • 25. Características Generales • Usado típicamente para aplicaciones integradas, normalmente tiene las siguientes características: • No utiliza mucha memoria • Cualquier evento en el soporte físico puede hacer que se ejecute una tarea • Multi-arquitectura (código portado a cualquier tipo de CPU) • Muchos tienen tiempos de respuesta predecibles para eventos electrónicos Se caracterizan por presentar requisitos especiales en cinco áreas generales: • Determinismo • Sensibilidad • Control del usuario • Fiabilidad • Tolerancia a los fallos • Son de tiempo compartido
  • 27. Algoritmos Genetico • First bullet point here • Second bullet point here • Third bullet point here Group A Task 1 Task 2 Task 3 Task 4