Este documento describe la programación dinámica como un paradigma para diseñar algoritmos eficientes. Explica que la programación dinámica divide un problema complejo en subproblemas más pequeños, resuelve cada subproblema una sola vez y almacena las soluciones para reutilizarlas. Luego detalla el método, incluyendo ejemplos como la serie de Fibonacci y encontrar el camino de costo mínimo en un grafo. Finalmente, concluye que la programación dinámica es útil para problemas que pueden dividirse recursivamente pero puede ser menos eficiente que
El modelo de transporte es un caso específico de programación lineal, uno de los temas que se ve en la materia de Investigación de operaciones dentro de los métodos cuantitativos de apoyo a la toma de decisiones
El modelo de transporte es un caso específico de programación lineal, uno de los temas que se ve en la materia de Investigación de operaciones dentro de los métodos cuantitativos de apoyo a la toma de decisiones
Aprenderás estrategias fundamentales para descomponer problemas complejos en partes manejables, identificar patrones recurrentes y aplicar soluciones algorítmicas. Descubre cómo optimizar tu proceso de pensamiento, mejorar la eficiencia de tu código y superar obstáculos comunes que enfrentan los programadores.
Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.Daniel Gomez Jaramillo
Generalidades sobre la inteligencia humana y artificial, y presentacion de los servicios: Face API, Computer Vision, Language Understanding (LUIS), Speech y Text Translate de Microsoft Cognitive Services.
Sistema de gestión de base de datos que emplea las sentencias básicas de SQL en el castellano.
Enlaces de interés:
Código fuente en Java: https://github.com/esdanielgomez/SQLuc
Documento base de diseño: https://es.scribd.com/document/338039295/Sistema-de-gestion-de-base-de-datos-SQL-UC
Autores, diseñadores y desarrolladores:
Christian Collaguazo Malla
Daniel Gomez Jaramillo
David Valladarez Muñoz
Codificación de Huffman
Implementación en Java:
https://github.com/esdanielgomez/CodificacionHuffman
Autores:
Jefferson Arias Ochoa
Daniel Gomez Jaramillo
Jonnathan Peñaranda Sarmiento
Gabriela Verdugo Velesaca
Universidad de Cuenca
Facultad de Ingeniería
Programación III: Estructura de Archivos
2016
Reproductor de música DG Player
Aplicación informática que permite a diversos usuarios la reproducción de canciones que estén almacenadas en uno o varios directorios previamente especificados. DG Player fue programado en el lenguaje de programación Java por medio de capas.
Enlaces del proyecto:
Página web de DG Player:
http://goo.gl/PVMfL2
Código fuente del proyecto:
https://github.com/esdanielgomez/dgplayer
Presentación:
https://youtu.be/Ny9kCXu_5WI
Documento del proyecto:
https://es.scribd.com/document/331334418/dgplayer
Desarrollador:
Daniel Gomez Jaramillo
2016
Escaneo y eliminación de malware en el equiponicromante2000
El malware tiene muchas caras, y es que los programas maliciosos se reproducen en los ordenadores de diferentes formas. Ya se trate de virus, de programas espía o de troyanos, la presencia de software malicioso en los sistemas informáticos siempre debería evitarse. Aquí te muestro como trabaja un anti malware a la hora de analizar tu equipo
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
2. CONTENIDO
1. Introducción
2. Descripción de la programación dinámica
I. Ventajas y desventajas.
II. Metodología
III. Aplicaciones
3. Conclusiones
4. Bibliografía.
3. INTRODUCCIÓN DE LA ESTRATEGIA DE DISEÑO
La programación dinámica a evolucionado hasta convertirse en un importante paradigma del diseño
de algoritmos. Fue acuñado por Richard Bellman para describir un tipo de problema de control
optimo. Originalmente el nombre describía mas el problema mas que la técnica para resolverlo.
La programación dinámica nos permite resolver problemas complejos caracterizados por decisiones
que se deben tomar en forma secuencial y las cuales influyen en las decisiones de estas secuencias.
Una característica importante de este método es que sustituye un calculo en tiempo
exponencial en tiempo polinomico.
4. DESCRIPCIÓN DEL MÉTODO
Características
Divide el
problema en
etapas
Es un método capaz de
resolver un problema
eficientemente
Resuelve los sub
problemas una sola
ves
El tiempo de
ejecución pude
mejorarse
substancialmente
5. DESCRIPCIÓN DEL MÉTODO
Una subestructura óptima significa que se pueden usar soluciones óptimas de subproblemas para
encontrar la solución óptima del problema en su conjunto.
En grandes líneas, el diseño de un algoritmo de Programación Dinámica consta de los siguientes
pasos:
1. Planteamiento de la solución como una sucesión de decisiones y verificación de que ésta cumple
el principio de óptimo.
2. Definición recursiva de la solución.
3. Cálculo del valor de la solución óptima mediante una tabla en donde se almacenan soluciones a
problemas parciales para reutilizar los cálculos.
4. Construcción de la solución óptima haciendo uso de la información contenida en la tabla anterior.
6. VENTAJAS Y DESVENTAJAS
VENTAJAS
-Eficaz para resolver problemas de gran
complejidad al dividirlo y secuenciarlo.
-Resuelve cada sub problema una sola vez.
-Los cálculos de cada etapa se organizan y se
guardan de manera eficiente, facilitando su
consulta para posteriores análisis.
DESVENTAJAS
-Si la red es muy grande se vuelve laborioso.
- No aplicable a todo tipo de problemas.
- Si hay un error en alguna tabla afecta a todo el problema.
7. METODOLOGIA DE LA PROGRAMACION DINAMICA
Problemas que se puede dividir
en problemas mas pequeños, y
esos a su vez en problemas mas
pequeños.
Se puede aplicar cuando
métodos mas especializados
fallan (al costo de la eficiencia).
¿Cuáles son los sub-problemas?
Es una técnica poderosa
para resolver tipos de
problemas en particular.
Se resuelve de abajo para arriba,
sub problemas-problema, “bottom-
up”.
Problema
Su-problema
básico básico básico
Sub problema
básico básico básico
Sub problema
básico básico básico
¿Cualquier problema usa
cualquier sub-problema?
8. SERIE DE FIBONACCI
fibonacci_1(n)= O(2^n)
1. Por recursividad dado un numero n sumando
(n-1)+(n-2)
f(6)=8
f(5)=5 f(4)=3
f(4)=3 f(3)=2
f(3)=2 f(2)=1
f(2)=1 f(1)=1
f(3)=2 f(2)=1
f(2)=1 f(1)=1
9. SERIE DE FIBONACCI
2. Construir un vector que permita ir almacenando los
cálculos realizados anteriormente hasta llegar al
número
fibonacci_2(n) = O(n)
0 1 2 3 4 5 6
N i arreglo(i-1) arreglo(i-2)
6 2 arreglo(1) arreglo(0)
3 arreglo(2) arreglo(1)
4 arreglo(3) arreglo(2)
5 arreglo(4) arreglo(3)
6 arreglo(5) arreglo(4)
0 1 1 2 3 5 8
10. SERIE DE FIBONACCI
3. Eliminar el vector y quedarnos solamente con
dos variables para almacenar los dos últimos
términos N i x y suma
6 1 1
2 2 1 2
3 3 2 3
4 5 3 5
5 8 5 8
12. CONCLUSIONES FINALES
• La Programación Dinámica es para
cierto tipo de problemas, aquellos
que pueden seguirse dividiendo en
sub-problemas mas pequeños.
• En la Programación Dinámica
resuelve principalmente los
problemas mas pequeños y
simples, donde los guarda en
una tabla, un arreglo, etc.
Proc1
SubP1
SubP2
SubP3
SubP1.1
SubP1.2
SubP2.1
SubP2.1
SubP3.1
SubP3.1
• Este se aplica cuando métodos
mas especializados FALLAN,
pero puede llegar a ser MENOS
eficiente.
Problema de la Serie de Fibonacci
Camino del coste mínimo entre dos nodos de
un grafo.
13. REFERENCIAS BIBLIOGRÁFICAS
S. Dasgupta, C.H. Papadimitriou, U. V. Vazirani, Algorithms, McGraw-Hill, Donnelley Crawfordsville
IN, Julio 2006.
Baase, S. Van Gelder, A.(2002). Algoritmos Computacionales. Mexico: PEARSON EDUCATION
Arbones, E(1989). Programacion de Recursos. Barcelona, España: marcombo