La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Conceptos Básicos de Programación

Presentaciones similares


Presentación del tema: "Conceptos Básicos de Programación"— Transcripción de la presentación:

1 Conceptos Básicos de Programación
RoboSim Conceptos Básicos de Programación

2 Tecnologías en Robosim
Comunicaciones TCP-IP Necesitamos utilizar cadenas alfanuméricas y las librerías de comunicaciones. Programación distribuida Necesitamos utilizar objetos de sincronismo y librerías para la gestión de threads. Inteligencia Artificial Necesitamos utilizar estructuras de datos y variables dinámicas.

3 ¿Qué es la IA? En mi modesta opinión:
Un conjunto de técnicas y tecnologías que resuelven problemas de programación complejos. La IA construye programas con los mismos elementos básicos de cualquier programa, pero de una manera más flexible y versátil.

4 Visión simplificada de las Tecnologías en IA
Sistemas Expertos: Basados en la recopilación en forma de reglas condicionales de la resolución de un problema, generalmente adquirida de un experto. Redes Neuronales: Basados en componentes llamados neuronas que aplican una función específica sobre varias entradas. Útiles en sistemas de clasificación. Lógica Borrosa: Basada en establecer niveles de variables y hacer razonamientos sobre esos niveles. Algoritmos genéticos: Un sistema de búsqueda de soluciones basado en un modelo similar a la evolución.

5 Técnicas útiles en nuestro caso
Búsqueda heurística. Se denomina así a una búsqueda no completa dentro de un conjunto de posibilidades en busca de una “buena” alternativa, es decir, que intente optimizar una función objetivo. Se utiliza cuando el espacio de búsqueda es muy grande. Reglas. Un sistema de reglas se basa en la evaluación de condiciones (premisas) que, al cumplirse, provocan una acción (conclusión). Una buena opción es diseñar una “sintaxis” de reglas y construir un programa que sea capaz de leerlas y ejecutarlas.

6 Control del Robot en Robosim
Aunque puede haber otros enfoques (seguro que muy eficaces) mi recomendación es: Control a largo plazo (es decir, búsqueda del camino más corto) mediante una búsqueda heurística mediante A* Control a corto plazo (es decir, resolución de problemas “locales”) mediante un sistema de reglas.

7 Datos Dinámicos En IA juega un papel destacado las estructuras de datos porque: Las estructuras representan como se relacionan los datos del problema Una buena estructura mejora el comportamiento de los algoritmos Estructuras dinámicas en C-C++. A base de struct, struct* (el puntero implica relación) Estructuras conocidas: vectores, listas, árboles.

8 Biblioteca Estándar: STL
Es una biblioteca de tipos de estructuras de datos. Tiene: Vectores, listas y “árboles”. Iteradores. Algoritmos. Basada en Templates (plantillas). Su uso no es sencillo, pero su uso acaba siendo ventajoso. Existen distintos sitios en Internet con teoría y ejemplos en STL.

9 Uso simplificado de las STL
Los tipos de STL se basan en templates por tanto es útil hacer: typedef vector<double> vector_double; vector_double v_1; Las operaciones básicas tienen como parámetros el tipo empleado en la definición, por ejemplo, insertar: v_1.push_back(3.4); Puede ser interesante emplear punteros a struct, pero debe liberarse la reserva de memoria.

10 Iteradores En cualquier tipo contenedor es válido:
vector_double::iterador i; //Multiplica todos los elementos por 7 for ( i = v_1.begin(); i != v_1.end(); i++) { (*i) = (*i) * 7.0; } Los iteradores funcionan como un puntero auxiliar que recorre toda la estructura pasando de un elemento al siguiente.

11 Map Es un contenedor que se implementa como un árbol ordenado por un índice. Tiene funciones para inserción, borrado y, por supuesto, iteradores. Ejemplos: ...

12 Algoritmos de Búsqueda
Se basan en un árbol y en una función objetivo. Existen distintas manera de buscar en el espacio de posibilidades (Branch and Bound, Best First Search) El “mejor” algoritmo de búsqueda es el A*


Descargar ppt "Conceptos Básicos de Programación"

Presentaciones similares


Anuncios Google