soluciÓn de problemas problema solución mundo real espacio del problema espacio de la solución...
TRANSCRIPT
![Page 1: SOLUCIÓN DE PROBLEMAS Problema Solución MUNDO REAL Espacio del Problema Espacio de la Solución MODELO Estructuras de Datos Abstractas Operaciones Abstractas](https://reader038.vdocuments.net/reader038/viewer/2022102521/54e7430f4a7959237e8b4848/html5/thumbnails/1.jpg)
SOLUCIÓN DE PROBLEMASSOLUCIÓN DE PROBLEMAS
Problema Solución
MUNDO REAL
Espacio del Problema
Espacio de la Solución
MODELO
Estructurasde
Datos Abstractas
Operaciones Abstractas
ALGORITMOABSTRACTO
ABSTRACCIÓN
CONCRECCIÓN
Datos dePrueba
Programa Resultados
MUNDO ABSTRACTO
![Page 2: SOLUCIÓN DE PROBLEMAS Problema Solución MUNDO REAL Espacio del Problema Espacio de la Solución MODELO Estructuras de Datos Abstractas Operaciones Abstractas](https://reader038.vdocuments.net/reader038/viewer/2022102521/54e7430f4a7959237e8b4848/html5/thumbnails/2.jpg)
PROBLEMAS
•Imposibles de formular en términos que permitan solución por computador
•Expresables en términos de un modelo formal
Investigar si existe un programa para solucionarlo
Si no existe, se pueden estudiar las propiedades del modelo que ayuda a construir una buena solución
MODELO SOLUCIÓN EN TÉRMINOS DE UN ALGORITMO
![Page 3: SOLUCIÓN DE PROBLEMAS Problema Solución MUNDO REAL Espacio del Problema Espacio de la Solución MODELO Estructuras de Datos Abstractas Operaciones Abstractas](https://reader038.vdocuments.net/reader038/viewer/2022102521/54e7430f4a7959237e8b4848/html5/thumbnails/3.jpg)
ALGORITMOALGORITMO
SECUENCIA FINITA DE PASOS LÓGICOS, CADA UNO DE LOS CUALES
TIENE UN SIGNIFICADO CLARO, PARA
SOLUCIONAR UN PROBLEMA CON UNA CANTIDAD FINITA DE
ESFUERZO, EN UN TIEMPO FINITO
SECUENCIA FINITA DE PASOS LÓGICOS, CADA UNO DE LOS CUALES
TIENE UN SIGNIFICADO CLARO, PARA
SOLUCIONAR UN PROBLEMA CON UNA CANTIDAD FINITA DE
ESFUERZO, EN UN TIEMPO FINITO
![Page 4: SOLUCIÓN DE PROBLEMAS Problema Solución MUNDO REAL Espacio del Problema Espacio de la Solución MODELO Estructuras de Datos Abstractas Operaciones Abstractas](https://reader038.vdocuments.net/reader038/viewer/2022102521/54e7430f4a7959237e8b4848/html5/thumbnails/4.jpg)
LA CONSTRUCCIÓN DE
ALGORITMOS
Para construir un algoritmo, es necesario:
• Tener un problema a resolver• Haberle encontrado solución
Frase del día:
“LA MITAD DE LA BATALLA ES SABER
QUE PROBLEMA SOLUCIONAR”
![Page 5: SOLUCIÓN DE PROBLEMAS Problema Solución MUNDO REAL Espacio del Problema Espacio de la Solución MODELO Estructuras de Datos Abstractas Operaciones Abstractas](https://reader038.vdocuments.net/reader038/viewer/2022102521/54e7430f4a7959237e8b4848/html5/thumbnails/5.jpg)
LA CONSTRUCCIÓN DE
ALGORITMOS cont...
Una vez que se tiene la solución, se puede proceder al diseño del algoritmo.
Pasos:
•Identificar los tipos de objetos que el algoritmo va a usar.
•Seleccionar las variables que representen instancias de cada tipo, para uso del programa.
•Seleccionar estructuras de control y operadores abstractos primitivos que reflejen las manipulaciones de datos.
•Abstraer estas estructuras de control y datos en procedimientos.(Estos procedimientos son “encarnaciones” abstractas del algoritmo.
IMPORTANTE: En este punto, se está muy por encima de
cualquier lenguaje de programación
![Page 6: SOLUCIÓN DE PROBLEMAS Problema Solución MUNDO REAL Espacio del Problema Espacio de la Solución MODELO Estructuras de Datos Abstractas Operaciones Abstractas](https://reader038.vdocuments.net/reader038/viewer/2022102521/54e7430f4a7959237e8b4848/html5/thumbnails/6.jpg)
PROBLEMA
E
A
D
C
B
Diseñar un semàforo para una intersección complicada de calles
![Page 7: SOLUCIÓN DE PROBLEMAS Problema Solución MUNDO REAL Espacio del Problema Espacio de la Solución MODELO Estructuras de Datos Abstractas Operaciones Abstractas](https://reader038.vdocuments.net/reader038/viewer/2022102521/54e7430f4a7959237e8b4848/html5/thumbnails/7.jpg)
SOLUCIÓN
MODELO MATEMÁTICO
GRAFO
VÉRTICES : GIROS PERMISIBLESÁRCOS : GIROS NO PERMISIBLES
DETERMINACIÓN DE GIROS
( AB, AC, AD, BA, BC,...)
GIROS NO SIMULTÁNEOS
ABEA
COLOREAR
ABEA
![Page 8: SOLUCIÓN DE PROBLEMAS Problema Solución MUNDO REAL Espacio del Problema Espacio de la Solución MODELO Estructuras de Datos Abstractas Operaciones Abstractas](https://reader038.vdocuments.net/reader038/viewer/2022102521/54e7430f4a7959237e8b4848/html5/thumbnails/8.jpg)
SOLUCIÓN cont..
AB AC
EA
DCDBDA
BA BC BD
AD
EDECEB
![Page 9: SOLUCIÓN DE PROBLEMAS Problema Solución MUNDO REAL Espacio del Problema Espacio de la Solución MODELO Estructuras de Datos Abstractas Operaciones Abstractas](https://reader038.vdocuments.net/reader038/viewer/2022102521/54e7430f4a7959237e8b4848/html5/thumbnails/9.jpg)
SOLUCIÓN cont..
AB AC
EA
DCDBDA
BA BC BD
AD
EDECEB
BA, DC, EB: Libres.
![Page 10: SOLUCIÓN DE PROBLEMAS Problema Solución MUNDO REAL Espacio del Problema Espacio de la Solución MODELO Estructuras de Datos Abstractas Operaciones Abstractas](https://reader038.vdocuments.net/reader038/viewer/2022102521/54e7430f4a7959237e8b4848/html5/thumbnails/10.jpg)
MACROALGORITMO
1. Seleccionar algún vértice no coloreado y asignarle un nuevo color.
2. Revisar la lista de vértices no coloreados. Para cada vértice no coloreado, determinar si tiene un ARCO a algún vértice ya coloreado con el nuevo color.
Si no lo hay, coloree el vértice con el nuevo color.
![Page 11: SOLUCIÓN DE PROBLEMAS Problema Solución MUNDO REAL Espacio del Problema Espacio de la Solución MODELO Estructuras de Datos Abstractas Operaciones Abstractas](https://reader038.vdocuments.net/reader038/viewer/2022102521/54e7430f4a7959237e8b4848/html5/thumbnails/11.jpg)
SEUDOCÓDIGO
PRIMER REFINAMIENTO
Procedimiento COLOREAR(G:grafo;NUEVOCOLOR:set);
NUEVOCOLOR = [ ] para cada vértice no coloreado V en G
si V no es adyacente a algún vértice en NUEVOCOLOR entonces marque a V como coloreado lleve V a NUEVOCOLOR finsi
finCOLOREAR
![Page 12: SOLUCIÓN DE PROBLEMAS Problema Solución MUNDO REAL Espacio del Problema Espacio de la Solución MODELO Estructuras de Datos Abstractas Operaciones Abstractas](https://reader038.vdocuments.net/reader038/viewer/2022102521/54e7430f4a7959237e8b4848/html5/thumbnails/12.jpg)
SEUDOCÓDIGO cont...
SEGUNDO REFINAMIENTO
Procedimiento COLOREAR(G:grafo;NUEVOCOLOR:set);
NUEVOCOLOR = [ ] para cada vértice no coloreado V en G encontró = falso para cada vértice W en NUEVOCOLOR si hay un arco entre V y W en G entonces encontró = verdadero finsi si (no encontró) marque a V como coloreado lleve V a NUEVOCOLOR finsi
finCOLOREAR
![Page 13: SOLUCIÓN DE PROBLEMAS Problema Solución MUNDO REAL Espacio del Problema Espacio de la Solución MODELO Estructuras de Datos Abstractas Operaciones Abstractas](https://reader038.vdocuments.net/reader038/viewer/2022102521/54e7430f4a7959237e8b4848/html5/thumbnails/13.jpg)
ALGUNAS DEFINICIONES IMPORTANTES
TIPO DE DATOSConjunto de valores que puede tener una variable Ej: BOOLEAN: true, false
ADT (Abstract Data Type)
Modelo matemático con una colección de operaciones definidas sobre el modeloEj: Conjunto :
ESTRUCTURA DE DATOS
Permite representar el modeloEj: arreglo, lista, map, stack
![Page 14: SOLUCIÓN DE PROBLEMAS Problema Solución MUNDO REAL Espacio del Problema Espacio de la Solución MODELO Estructuras de Datos Abstractas Operaciones Abstractas](https://reader038.vdocuments.net/reader038/viewer/2022102521/54e7430f4a7959237e8b4848/html5/thumbnails/14.jpg)
TIPOS DE DATOS ABSTRACTOSBÁSICOS
LISTA
ESTRUCTURA DE DATOS FLEXIBLE QUE PUEDE CRECER O DISMINUIR BAJO DEMANDA, Y LOS ELEMENTOS SE PUEDE
•ACCEDER•INSERTAR•ELIMINAR
EN CUALQUIER POSICIÓN DENTRO DE LA LISTA
ESTRUCTURA DE DATOS FLEXIBLE QUE PUEDE CRECER O DISMINUIR BAJO DEMANDA, Y LOS ELEMENTOS SE PUEDE
•ACCEDER•INSERTAR•ELIMINAR
EN CUALQUIER POSICIÓN DENTRO DE LA LISTA
DEFINICIÓN
![Page 15: SOLUCIÓN DE PROBLEMAS Problema Solución MUNDO REAL Espacio del Problema Espacio de la Solución MODELO Estructuras de Datos Abstractas Operaciones Abstractas](https://reader038.vdocuments.net/reader038/viewer/2022102521/54e7430f4a7959237e8b4848/html5/thumbnails/15.jpg)
LISTAS
OPERACIONES ABSTRACTAS
1. INSERTAR(x, p, L)
Inserta x, en la posición p de L
2. ELIMINAR(p, L)
Borra elemento de la posición p de L
3. LOCALIZAR(x, L)
Retorna a través de LOCALIZAR, la posición de x en L
4. RECUPERAR(p, L)
Retorna a través de RECUPERA, el contenido de la posición p en L
![Page 16: SOLUCIÓN DE PROBLEMAS Problema Solución MUNDO REAL Espacio del Problema Espacio de la Solución MODELO Estructuras de Datos Abstractas Operaciones Abstractas](https://reader038.vdocuments.net/reader038/viewer/2022102521/54e7430f4a7959237e8b4848/html5/thumbnails/16.jpg)
LISTAS cont...
OPERACIONES ABSTRACTAS
5. HACERLISTANULA(L)
Crea o hace una lista vacía
6. PRIMERO(L)
Retorna en PRIMERO, la primera posición de la lista L. Si está vacía, retorna el final de la lista
7. FINAL(L)
Retorna la posición siguiente al “último elemento” de la lista
![Page 17: SOLUCIÓN DE PROBLEMAS Problema Solución MUNDO REAL Espacio del Problema Espacio de la Solución MODELO Estructuras de Datos Abstractas Operaciones Abstractas](https://reader038.vdocuments.net/reader038/viewer/2022102521/54e7430f4a7959237e8b4848/html5/thumbnails/17.jpg)
LISTAS cont...
OPERACIONES ABSTRACTAS
8. PROXIMO(p, L)
Entrega en PROXIMO, la dirección del elemento siguiente a p
9. PREVIO(p, L)
Entrega en PREVIO, la dirección del elemento anterior a p
10. IMPRIMIRLISTA(L)
Imprime los elementos de la lista L