1/16 líneas de investigación mg. samuel oporto díaz seminario de tesis i
TRANSCRIPT
11 /16/16
Líneas de Investigación
Mg. Samuel Oporto Díaz
SEMINARIO DE TESIS I
22 /16/16
Tabla de Contenido• Líneas de Investigación.
– Complejidad Algorítmica– Minería de Datos– Visión Computacional– Robótica– Aprendizaje Automático– Sistemas Inspirados en la Naturaleza
33 /16/16
LINEAS DE INVESTIGACIÓN
44 /16/16
Carreras Profesionales“Ingeniería de Sistemas” de la UNI-FIIS
Sistemas Computación e InformáticaIngeniería de
SistemasIngeniería de
ComputadorasCiencias de la Computación
Sistemas de Información
Ingeniería de Software
Tecnologías de la Información
Integración de equipos
multidisciplinarios para la realización
de sistemas exitosos
Diseño y construcción de computadoras y
sistemas basados en computadoras
Fundamentos de algoritmos, robótica,
visión, sistemas inteligentes,
bioinformática. Diseño de algoritmos
Integración de soluciones de TI y
procesos de negocio para cubrir
necesidades de información
Desarrollo y mantenimiento de
sistemas
Necesidades de TI para empresas.
Define la infraes-tructura de TI de
una organización y las personas que lo
utilizanIng. de Sistema,
tecnología política, administración, innovación, etc.
Hardware, software y comunicaciones
algoritmos, SO, complejidad, visión
Sistemas de Información, adm. de
la información
Análisis y diseño de sistemas, proceso de
software
Interacción H-C, seguridad de la
información, Adm. de la inform.
Fuente.Denominaciones y Perfiles de las carreras de ingeniería de sistemas,
computación e informática en el PerúCIP – Junio 2006
55 /16/16
Ciencias de la Computación• Es el estudio de las bases teóricas de la
información y la computación y su aplicación en sistemas computacionales.
• Se abarca desde aplicaciones específicas del cómputo hasta con las propiedades de los algoritmos usados al realizar cómputos.
http://www.njit.edu/v2/archivecatalog/undergraduate/91/19-und.html
• Por ejemplo, los estudios de la teoría de lenguajes de programación describen un cómputo, mientras que la programación de computadoras aplica lenguajes de programación específicos para desarrollar una solución a un problema computacional concreto.
66 /16/16
Campos de las CC• Fundamentos matemáticos• Teoría de la computación• Algoritmos y estructuras de datos• Lenguajes de programación y compiladores• Bases de datos• Sistemas concurrentes, paralelos y distribuidos• Inteligencia artificial• Gráficos por computador• Computación científica
77 /16/16
Campos de las CCFundamentos matemáticos• Criptografía • Teoría de grafos • Lógica matemática • Teoría de tipos de datos
Teoría de la computación• Teoría de la computación • Teoría de autómatas • Teoría de la computación• Teoría de la complejidad computacional
Algoritmos y estructuras de datos• Análisis de algoritmos • Algoritmos • Estructuras de datos
88 /16/16
Campos de las CCLenguajes de programación y compiladores• Compiladores • Lenguajes de programación
Bases de datos• BDMS,• DWH• Minería de datos
Sistemas concurrentes, paralelos y distribuidos• Programación concurrente • Redes de computadoras • Cómputo paralelo
99 /16/16
Campos de las CCInteligencia artificial• Razonamiento automatizado • Visión por computador • Robótica • Aprendizaje Automático• Sistemas Inspirados en la naturaleza
Gráficos por computador• Gráficos por computador • Procesamiento digital de imágenes
Computación científica• Bioinformática
1010 /16/16
COMPLEJIDAD ALGORITMICA
1111 /16/16
Computadoras
Computadora no determinística.• Es una computadora que tiene la habilidad de llevar a cabo
un número ‘ilimitado’ de búsquedas paralelas de manera independiente.
• Al ser confrontada con varias opciones, puede “adivinar” la correcta. Nunca hace elecciones incorrectas que la lleven a un paso previo
• No existen en el mundo real. Es una herramienta imaginaria que hace que los problemas difíciles parezcan triviales
1212 /16/16
Complejidad• Un algoritmo es un
procedimiento computacional bien definido, que toma un conjunto de valores de entrada y produce valores de salida.
• También podemos ver a un algoritmo como una herramienta para resolver un problema computacional específico.
• La complejidad de un algoritmo es una medida de la cantidad de recursos que consume.
• Recurso:– Tiempo– Espacio
• Memoria• Disco
1313 /16/16
Orden de magnitud de un algoritmo• Tiempos más comunes de los algoritmos:• O(1) < O(log n) < O(n) < O(n log n) < O(n2) < O(n3) < O(2n)
1414 /16/16
Clases de problemas• Muchos problemas se resuelven con algoritmos
polinómicos (O(nk)): problemas tratables• La clase P contiene todos los problemas tratables.
• Hay problemas que no se pueden resolver en tiempo polinónico ((nk)): problemas intratables.
• La clase NP contiene todos los problemas que se pueden “verificar” en tiempo polinómico. Claramente PNP.
• La clase NP puede ser resuelto en tiempo polinomial pero usando una computadora no determinística
• La clase NPC contiene todos los problemas NP-completos
• Hay problemas que no se pueden resolver: problema de la parada.
1515 /16/16
(1) Problemas tratables• Son todos aquellos que pueden ser resueltos en tiempo
polinómico
• Un problema pertenece a la clase P si puede ser resuelto en tiempo polinomial en una computadora determinística.
• Ejemplos: Quicksort, búsqueda binaria, multiplicación matricial.
1616 /16/16
P vs NP• La clase P contiene problemas que pueden resolverse
rápidamente.
• La clase NP contiene problemas cuya solución puede verificarse rápidamente.
• Se plantea la pregunta: ¿Es P = NP?• Aún sigue siendo una pregunta abierta para los teóricos.
• Se cree que P != NP
1717 /16/16
(2) Problemas NP-completos• Hay una clase de problemas que no se sabe si son
tratables: problemas NP-completos
• Nadie ha encontrado algoritmos polinómicos para ninguno de ellos.
• Algunos muy parecidos a problemas tratables:– Ciclos eulerianos y hamiltonianos.– Satisfabilidad de 2-FNC y 3-FNC
1818 /16/16
Problemas NP Completos• Todos los algoritmos conocidos para problemas NP-
completos utilizan tiempo exponencial con respecto al tamaño de la entrada.
• Todos los algoritmos requeridos para resolverlos requieren tiempo exponencial en el peor caso.
• Es decir, son sumamente difíciles de resolver.
• Ejemplos: el problema del agente viajero, O(n22n)
1919 /16/16
Ejemplo• Suma de subconjuntos:
• Dado un conjunto S de enteros, ¿existe un subconjunto no vacío de S cuyos elementos sumen cero?
• Es fácil verificar si una respuesta es correcta, pero no se conoce mejor solución que explorar todos los 2n-1 subconjuntos posibles hasta encontrar uno que cumpla con la condición.
2020 /16/16
Soluciones aproximadas• Se desconoce si hay mejores algoritmos, por la cual, para
resolver un problema NP-completo de tamaño arbitrario se utiliza uno de los siguientes enfoques:
• Aproximación: Un algoritmo que rápidamente encuentra una solución no necesariamente óptima, pero dentro de un cierto rango de error. En algunos casos, encontrar una buena aproximación es suficiente para resolver el problema, pero no todos los problemas NP-completos tienen buenos algoritmos de aproximación.
• Probabilístico: Un algoritmo probabilístico obtiene en promedio una buena solución al problema planteado, para una distribución de los datos de entrada dada.
• Casos particulares: Cuando se reconocen casos particulares del problema para los cuales existen soluciones rápidas.
• Heurísticas: Un algoritmo que trabaja razonablemente bien en muchos casos. En general son rápidos, pero no existe medida de la calidad de la respuesta.
• Algoritmo genético: Algoritmos que mejoran las posibles soluciones hasta encontrar una que posiblemente esté cerca del óptimo. Tampoco existe forma de garantizar la calidad de la respuesta.
2121 /16/16
(3) Problema de la parada• No existe ningún algoritmo que diga si un programa va a
parar en tiempo finito con una entrada dada:– Supongamos que hay una función H(P,I) que lo
resuelve.– Construimos D(P):
If H(P,P) then loop forever
else stop– ¿Qué debe hacer D(D)?
2222 /16/16
MINERIA DE DATOS
2323 /16/16
Tipos de Aprendizaje
Tipos de Aprendizaje
Supervisado
Una especie de profesor sugiere una categoría para cada conjunto de entrenamiento. Se busca reducir el error de entrenamiento.
No Supervisado
No existe el profesor, el sistema realiza agrupamientos en forma natural sobre los patrones de entrada, para determinar la clase a la que pertenece.
2424 /16/16
Tareas de la Minería de Datos
Tareas
Predictiva
Descriptiva
ClasificaciónClasificación
RegresiónRegresión
AgrupamientoAgrupamiento
Reglas de AsociaciónReglas de Asociación
SecuenciaciónSecuenciación
2525 /16/16
Clasificación• Intenta clasificar algunos objetos en un
número finito de clases, en función a sus propiedades (características)
• Se intenta buscar un función de mapeo que permita separar la clase 1 de la clase 2 y esta de la clase 3…
• Las variables (atributos) son categóricos (no numéricos).
• El modelo se construye con datos completos, cada registro tiene una clase predefinida.
• Busca formas de separar la data en clases pre-definidos:
• Árboles de decisión.
• Redes Neuronales.
• Clasificador Bayesiano.
• Razonamiento basado en casos
2626 /16/16
Regresión• Intenta determinar la función que mapea un
conjunto de variables de entrada X (independiente), en una (o más) variables de salida Y (dependiente), .
• Es básicamente numérica.• Está basada en supuestos estadísticos.
• Árboles de decisión.
• Redes Neuronales.
• Regresión Logística
2727 /16/16
Agrupamiento (Clustering)(Clasificación no supervisada)
• Intenta agrupar una serie de objetos en grupos.
• Cada objeto es representado por un vector de atributos n-dimensional.
• Los objetos que forman cada grupo deben ser disimilares.
• La similaridad es medida del grado de proximidad.
• Luego cada grupo es etiquetado.
• K-means(agrupamiento exclusivo)
• Fuzzy C-means(agrupamiento con traslape)
• Angulo de distribución mínima
• Método de autoorganización (SOM)
• Razonamiento Adaptativo
2828 /16/16
Reglas de Asociación• Analiza los datos para descubrir reglas que
identifiquen patrones o comportamientos.• Reglas de la forma A B.• Usa algoritmos intensivos en procesamiento.• Análisis de la cesta de la compra (market
basket analysis).
ID Declaración
2000 A,B,C
1000 A,C
4000 A,D
5000 B,E,F
Encuentre ¿qué grupos de ítems comúnmente se declaran juntos?
Haciendo el soporte mínimo del 50% y la confianza mínima del 50% , tenemos:
A C ( 50%, 66.6%)C A ( 50%, 100%)
D
YXYXsoporte
)(
X
YXYXconfianza
)(
• A priori
• A priori predictivo
2929 /16/16
Secuenciación• Buscar secuencias que son usualmente
probables.• Requiere entrenamiento, lista de eventos,
conocimiento de eventos interesantes.• Debe ser robusto en la fase de adicionar
eventos con ruido.• Usado en el análisis de fallas y predicción.
• Modelo de Markov
• Agrupamiento MDD (Maximal Dependence
Decomposition Clustering)
A B
HTHHTHHttthtttHHTHHHHtthtthttht...
3030 /16/16
VISION COMPUTACIONAL
3131 /16/16
¿Qué es Visión?• “Visión es saber que hay y donde mediante la vista”
(Aristóteles)• “Visión es recuperar de la información de los sentidos
propiedades válidas del mundo exterior” (Gibson)• “Visión es un proceso que produce a partir de las imágenes
del mundo una descripción que es útil para el observador y que no tiene información irrelevante” (Marr)
3232 /16/16
Visión Computacional• Determinar la identidad y localización de objetos en una
imagen,• construir una representación tridimensional de un objeto,• analizar un objeto para determinar su calidad,• descomponer una imagen u objeto en diferentes partes.
IMAGEN VISIÒNDESCRIPCIÒN
3333 /16/16
Digitalización de imágenes
24 38
43 45
56 59 46
50
44
3434 /16/16
Binarización• Transformación lineal en el que la imagen de salida tiene 2
valores - blanco y negro
S=blanco, si E > T
S=negros, si E < T
T es el umbral
3535 /16/16
Ejemplos de Operaciones Puntuales
3636 /16/16
Histograma de intensidades• Distribución de niveles de intensidad en una imagen• Ejemplo:
• Estimado de probabilidad de ocurrencia de cada nivel de intensidad: p= nr / nt
00
0
1 1
1 1
1
122
22
2
3 3
0 1 2 3
3737 /16/16
Ejemplos de histogramas
3838 /16/16
Ecualización del histograma• Función de transformación:h
s(k) = Sk ni / n
• Para k = 0, 1, 2, 3 …. Número de niveles
• Esto es, al hacer la transformación se asigna a cada nivel de intensidad de la imagen de salida el valor de la sumatoria de las probabilidades hasta ese valor
• Da un valor entre 0 y 1 que hay que multiplicar por una constante (255)
3939 /16/16
Ejemplos de ecualización - antes
4040 /16/16
Ejemplos de ecualización - después
4141 /16/16
Filtrado• Filtrar una imagen consiste en aplicar una transformación
de forma que se acentúen o disminuyan ciertos aspectos
g(x,y) = T[f(x,y)]
4242 /16/16
Filtrado en el Dominio Espacial• Operan directamente sobre los pixels de la imagen• Se utiliza generalmente una “máscara” que opera sobre
una vecindad de pixels, centrándose sobre el pixel de interés
• Se realiza una convolución (barrido) de la máscara con la imagen.
• Cada pixel de la nueva imagen se obtiene mediante la sumatoria de la multiplicación de la máscara por la vecindad del pixel:
g(x,y) = f(i,j) w(i,j)
• Generalmente se divide sobre cierto valor constante para normalizar
4343 /16/16
Aplicación de una máscara
4444 /16/16
Convolución
1 1 1
1 1 1
1 1 1
máscara
Imagenoriginal
0 1
1
0
0 0
000 1
1
1
Imagennueva
4545 /16/16
Convolución - paso 1
1 1 1
1 1 1
1 1 1
máscara
Imagenoriginal
0 1
1
0
0 0
000 1
1
1
Imagennueva
2
4646 /16/16
Convolución - paso 2
1 1 1
1 1 1
1 1 1
máscara
Imagenoriginal
0 1
1
0
0 0
000 1
1
1
Imagennueva
2 5
4747 /16/16
Normalización
1 1 1
1 1 1
1 1 1
máscara
Imagennueva
2 5
Imagennueva normalizada
0 1
En esta caso se divide entre “9”(suma de las valores de la máscara)
4848 /16/16
ROBOTICA
4949 /16/16
¿Qué es un robot?
5050 /16/16
Un robot es ...• “un manipulador programable y multifuncional diseñado
para mover materiales, partes, herramientas o dispositivos específicos mediante movimientos programados para realizar diferentes tareas” [Instituto de Robótica de América]
• “un agente activo artificial cuyo ambiente es el mundo físico” [Russell y Norvig]
• “una conexión inteligente de percepción a acción” [Jones y Flynn]
• “una máquina programable capaz de percibir y actuar en el mundo con cierta autonomía” [E. Sucar]
5151 /16/16
Tipos de Robots• Robots manipuladores (brazos)
• Robots móviles
• Robots “híbridos” (móviles con manipulación)
• Vehículos autónomos
• Robots caminantes– 2 patas (humanoides)– 4/6 patas (insectos)
5252 /16/16
Aplicaciones• Manufactura y manejo de materiales• Ambientes hostiles• Exploración espacial e interplanetaria• Robots de servicio• Telepresencia y realidad virtual• Militares y operaciones de rescate• Ambientes submarinos• Estudios fisiológicos y cognitivos• Entretenimiento y juegos
5353 /16/16
Partes de un Robot
Actuadores
Sensores
Comunicación
“Inteligencia”
Control
Potencia
5454 /16/16
Actuadores• Dispositivos que permiten al robot modificar el medio
ambiente• Dos tipos principales:
– Locomoción: cambiar la posición del robot respecto al medio ambiente
– Manipulación: mover otros objetos en el medio ambiente
5555 /16/16
Locomoción• Existen dos formas básicas de
locomoción:– Robots con ruedas– Robots con patas
• Ruedas:– más simples y eficientes, fáciles
de controlar– limitadas a terrenos planos
• Patas:– complejas, inestables, difíciles de
controlar– mayor flexibilidad para todo tipo
de terreno
5656 /16/16
Manipulación• Normalmente construidos en base a una serie de
segmentos con articulaciones entre ellos (como un brazo)• Tres tipos básicos de articulaciones:
– Rotacionales– Cilíndricas– Prismáticas
• Mayor número de articulaciones dan mayor flexibilidad (grados de libertad), pero hacen más complejo el control
5757 /16/16
Imágenes
5858 /16/16
Imágenes
5959 /16/16
APRENDIZAJE AUTOMATICO
6060 /16/16
Planeación
Búsqueda en un espacio de problemas
1. Estado o situación: descripción instantánea
2. Acción u Operador: transformación de un estado en otro
3. Estado inicial: situación de partida
4. Objetivo o meta: descripción de condiciones que se tienen que dar para considerar por terminado el proceso
5. Plan: secuencia de operaciones que permiten pasar del estado inicial a un estado en el que se cumplan los objetivos
6. Heurísticas: conocimiento que permite obtener eficientemente el plan
6161 /16/16
El Problema del Mundo de los Bloques
6262 /16/16
El mundo de los bloques• Un conjunto de bloques, una mesa, y un brazo de un robot
• Los bloques son iguales de tamaño, forma y color, diferenciándose en el nombre
• La mesa tiene extensión ilimitada
• Cada bloque puede estar encima de la mesa, encima de un sólo bloque, o sujeto por el brazo del robot
• El brazo de robot sólo puede sujetar un bloque cada vez
6363 /16/16
El mundo de los bloques
Estado Inicial Estado Final
• Resolver problemas supone pasar de una configuración (estado) inicial a un estado en el que sean ciertas unas metas
A
D C
B
D
B A
C
6464 /16/16
Estados
• Se podrían utilizar los siguientes predicados:– encima(x,y) : el bloque x está encima del y– en-mesa(x) : el bloque x está encima de la mesa– libre(x) : el bloque x no tiene ningún bloque encima– sujeto(x) : el brazo del robot tiene cogido al bloque x– brazo-libre : el brazo del robot no tiene cogido a ningún bloque
• Estado inicial: encima(A,B),encima(B,D),en-mesa(D),en-mesa(C), libre(A),libre(C),brazo-libre
• Metas: en-mesa(A), en-mesa(B), encima(C,B) , encima(D,C)
Estado Inicial Estado Final
A
D C
B
D
B A
C
A
D C
B
D
B A
C
6565 /16/16
OperadoresQUITAR(x, y)
– precondiciones: encima(x, y),libre(x),brazo-libre– añadidos: sujeto(x),libre(y)– borrados: encima(x, y),brazo-libre,libre(x)
LEVANTAR(x)– precondiciones: en-mesa(x),libre(x),brazo-libre– añadidos: sujeto(x)– borrados: en-mesa(x),brazo-libre,libre(x)
PONER(x, y)– precondiciones: sujeto(x),libre(y)– añadidos: encima(x, y),libre(x),brazo-libre– borrados: sujeto(x),libre(y)
DEJAR(x)– precondiciones: sujeto(x)– añadidos: en-mesa(x),libre(x),brazo-libre– borrados: sujeto(x)
6666 /16/16
Lenguaje PDDL - Operadores(define (domain mundobloques) (:requirements :strips :equality) (:predicates (encima ?bl1 ?bl2) (enmesa ?bl) (libre ?bl) (sujeto ?bl) (brazolibre) ) (:action quitar :parameters (?bl1 ?bl2 ) :precondition (and (encima ?bl1 ?bl2) (libre ?bl1) (brazolibre) ) :effect (and (sujeto ?bl1) (libre ?bl2) (not (encima ?bl1 ?bl2)) (not (brazolibre)) (not (libre ?bl1)) ) )
6767 /16/16
Lenguaje PDDL - Operadores (:action levantar :parameters (?bl1 ) :precondition (and (enmesa ?bl1) (libre ?bl1) (brazolibre) ) :effect (and (sujeto ?bl1) (not (enmesa ?bl1)) (not (brazolibre)) (not (libre ?bl1)) ) )
6868 /16/16
Lenguaje PDDL - Operadores (:action poner :parameters (?bl1 ?bl2 ) :precondition (and (sujeto ?bl1) (libre ?bl2) ) :effect (and (encima ?bl1 ?bl2) (libre ?bl1) (brazolibre) (not (sujeto ?bl1)) (not (libre ?bl2)) ) )
6969 /16/16
Lenguaje PDDL - Operadores (:action dejar :parameters (?bl1 ) :precondition (and (sujeto ?bl1) ) :effect (and (enmesa ?bl1) (libre ?bl1) (brazolibre) (not (sujeto ?bl1)) ) ))
7070 /16/16
SISTEMAS INSPIRADOS EN LA NATURALEZA
7171 /16/16
Lógica Difusa• La Lógica Difusa es una generalización de la lógica
tradicional de dos valores (verdadero, falsos).• Mediante la lógica difusa es posible manipular
matemáticamente conceptos definidos con incertidumbre, es decir, conceptos que son vagos, ambiguos e imprecisos.
altabaja
mediana
kph
Gradopertenencia
0 100 200
7272 /16/16
Redes Neuronales.• Modelo de procesamiento basado en el cerebro.• Está compuesto de capas de nodos unidos por arcos. Cada
arco contiene pesos.• El aprendizaje se logra en la actualización de esos pesos.• Se usan para la clasificación y reconocimiento de patrones.
• Aplicaciones:• Reconocimiento de patrones.• Predicción• Optimización.
7373 /16/16
Computación Evolutiva.• Es un modelo de optimización ciega donde no se conoce la
ecuación de la función a optimizar.• Usa una técnica heurística para determinar los valores de
las variables que permiten optimizar una función desconocida (no explicita).
• Aplicaciones.– Problema de ruteo de camiones entre ciudades.– Cuál es el mejor diseño de las características de un dispositivo.– Corte de materiales.– Aplicaciones donde el número de alternativas a buscar es muy
grande.