1. Introducción a la Industria 4.0.
- Introducción a la Industria 4.0.
- Evolución histórica.
- Internet de las cosas (IoT, Internet of Things).
- Usos de IoT y Tecnologías aplicadas en la IoT.
- Retos de las IoT. Ventajas e inconvenientes.
- Concepto de la Industria 4.0.
- ¿Qué es industria 4.0 o la empresa inteligente?
- Cambios en el entorno industrial.
- Tecnologías para explicar la Industria 4.0
- Retos y oportunidades de la Industria 4.0.
2. Tipos de sistemas empotrados. Introducción.
- Introducción. Procesamiento Digital. Aplicaciones.
- ¿Qué es un microcontrolador? Características.
- Introducción. Bloques básicos de un sistema digital
- ¿Qué procesador digital elegir?
- Compañías relevantes del mercado de los microcontroladores.
- Aplicaciones de los procesadores digitales
- Plataformas abiertas empotradas. Arduino.
- Shields arduino existentes. IDE. Resumen.
- Arduino. Estructuras de programa.
- ESP32. Introducción.
- Plataformas TMS320-DSP (C2000-Texas).
- Características de las CPU’s de C2000 Texas Instruments.
- Kits de desarrollo de la familia C2000.
- Hardware de sistemas empotrados.
- Raspberry PI. Introducción.
- Aplicaciones y características de la Raspberry PI.
- Elementos de la Raspberry PI (pequeño PC).
- Tarjetas Raspberry PI existentes. Resumen.
- Tarjeta de la Raspberry PI 2 B.
3. Introducción a la Inteligencia Artificial.
- Objetivos.
- Introducción a la Inteligencia Artificial (IA).
- Áreas de aplicación de la IA.
- Ramas de la IA.
- Sistemas inteligentes en los sistemas electrónicos.
- Tipos de técnicas de la IA:
- Redes Neuronales.
- Fuzzy control (Lógica Borrosa)
- Sistemas expertos.
- Algoritmos genéticos.
- Optimización de enjambres de partículas (PSO).
- Colonia de hormigas.
- Preguntas que hacerse de la IA.
4. Lenguaje "C" aplicado IA. Aboles.
- Introducción a la búsqueda con árboles.
- Estructuras Jerárquicas.
- Concepto de los árboles de búsqueda.
- Terminología de los árboles de búsqueda.
- Ejemplos de árboles.
- Definición de árbol BINARIO.
- Características de un árbol BINARIO.
- Recorrido de los árboles de búsqueda:
- Preorden
- Enorden
- Postorden
- Implementación en “C” de un árbol de búsqueda.
- Árbol Binario de Búsqueda (ABB).
- Ejemplo: Codificación en “C” de la Búsqueda de un Nodo en un ABB.
5. Búsquedas de soluciones mediante la IA. Heurística.
- Introducción a la Resolución de Problemas.
- ¿Qué son las técnicas de búsqueda y cuáles son sus elementos?
- Tipos de solucionadores:
- Búsqueda ciega
- Búsqueda heurística
- Búsqueda sin información del dominio o ciega:
- Búsqueda en amplitud
- Búsqueda en profundidad
- Búsqueda en profundidad progresiva
- Búsqueda bidireccional
- Representación de problemas. Espacio de Estados.
- Ejemplos: Puzzle-8, 8 Reinas y Jarras de agua.
- Algoritmo de Fuerza Bruta. Ejemplo.
- Grafos. Definición, Matriz de Adyacencia y aplicaciones.
- Recorridos en los Grafos: Primero en profundidad y anchura.
- Implementación en "C" Algoritmo BFS y DFS.
- Árboles. Definición, aplicaciones. Ejemplo de implementación.
- Búsqueda Ciega. Tipos de búsqueda.
- Resumen de Estrategias de búsquedas.
- Algoritmo básico de búsqueda.
- Ejemplo del algoritmo Búsqueda Primero en Profundidad (DFS).
- Algoritmos de vuelta atrás (backtracking). Introducción.
- Implementación de la técnica de Backtracking.
- Problema de la Mochila.
- Búsqueda con adversarios (Juegos). Ejemplos.
- Búsqueda con adversarios (Juegos). Poda Alfa-Beta.
- Introducción. GPS (General Problem Solver).
- Implementación del algoritmo búsqueda para encontrar las Llaves. Robot.
- Implementación del algoritmo búsqueda de vuelos aéreos.
- Introducción solución de problemas.
- Diseño de sistemas de búsqueda de soluciones.
- Espacios de Estados.
- Búsqueda Heurística. Función de evaluación.
- Estrategias de búsqueda heurística. Gradiente.
- Algoritmo primero el mejor. Ejemplo tres en raya.
- Juegos. Algoritmo A*.
- Juegos. Algoritmo MINIMAX.
- Juegos. Algoritmo poda Alfa-Beta.
- Introducción al resolvedor de problemas generales.
- Conceptos básicos Grafos.
- Introducción del Agente Viajero (TSP, Travelling Salesman Problem).
- Planteamiento del TSP.
- Grafos. Algoritmo del vecino más cercano. Ejemplos.
- Pseudocódigo del algoritmo del vecino más cercano.
- Aplicaciones más importantes del TSP.
- Métodos de Resolución del TSP. “Fuerza Bruta”.
- Implementación del Algoritmo Vecino más cercano.
- Problema del TSP, mediante programación dinámica.
- Resolución del problema del TSP, mediante programación dinámica.
- Implementación del Algoritmo Programación dinámica.
6. Árboles de Decisión. Aplicaciones.
- Introducción a los árboles de decisión.
- Los árboles de Decisión/Clasificación
- Árboles de Decisión. Espacio de búsquedas
- Representación gráfica de los árboles de decisión
- Aplicación de los Árboles de Decisión. El problema vendedor de periódicos.
- Características y Aprendizaje (Machine Learning) de los Árboles de Decisión.
- Ejemplo sencillo Árbol de Decisión. Características ó atributos.
- Árboles de Decisión. Algoritmo ID3.
- Algoritmo ID3. Características, procedimientos.
- Algoritmo ID3. Ventajas e inconvenientes.
- El algoritmo básico de aprendizaje ID3. Pasos a realizar.
- Algoritmo ID3. Pseudocódigo.
- Conceptos de la información: Entropía y Ganancia.
- Ejemplo aplicado Algoritmo ID3. Jugar al golf.
- Ejemplo de Codificación en "C" del Algoritmo decisión ID3.
- Problemáticas del Algoritmo ID3,
7. Regresión: Lineal y Logística.
- Introducción. Regresión Lineal.
- El modelo de regresión lineal simple (RLS).
- El modelo de RLS. Estimadores de mínimos cuadrados.
- Medidas de dependencia lineal. La covarianza.
- El modelo de RLS. Ejemplo.
- Ejemplo de Regresión Lineal en “C”.
- Ejemplo de Predicción-Fit con Regresión Lineal.
- Regresión Lineal Múltiple (RLM). Ejemplo.
- Ejemplo de Regresión Lineal Múltiple en "C".
- Clasificación con Regresión Lineal (RL).
- Regresión Logística. Introducción.
- Ejemplo de Regresión Logística en “C”.
8. Gradiente descendente.
- Métodos Gradiente
- Introducción
- El método del gran descenso ("steepest descent")
- Criterios de parada
- Funciones cuadráticas.
9. Redes Neuronales. Introducción.
- Introducción a las redes neuronales.
- Clasificación de redes neuronales:
- Estructura
- Entrenamiento
- Aplicación de las redes neuronales a la identificación de sistemas y otras.
- Conclusiones de la Redes Neuronales.
- El modelo de una neurona artificial. Funciones de las neuronas.
- Células de McCulloch-Pitts. Red monocapa.
- Ejemplo: Obtener la salida de la red neuronal función NOT.
- Codificación en Lenguaje “C” de una red McCulloch-Pitts.
10. Redes Neuronales. Adaline.
- Introducción red Adaline.
- ADALINE [Adaptive Linear Neuron]. Arquitectura.
- Red Neuronal ADALINE. Entrenamiento.
- Características de ADALINE.
- Comparación entre el Perceptrón y Adaline.
- Regla de Aprendizaje de mínimos cuadrados (LMS).
- Algoritmos de Aprendizaje. ADALINE.
- Simulación de la función lógica OR con ADALINE. Matlab.
- Implementación en “C” de la función OR con ADALINE.
- Ejemplo de Entrenamiento de ADALINE: BCD.
- Aplicación de la red ADALINE. Robot.
- Red Neuronal MADALINE. Introducción.
- Red Neuronal MADALINE. Aprendizaje. Tipos.
- Red Neuronal MADALINE. Ejemplo XOR.
- Simulación de la función lógica XOR con MADALINE.
- Implementación red Adaline: Estimación de la frecuencia y Filtro Adaptativo.
11. Redes Neuronales. Perceptrón Monocapa.
- Introducción al Perceptrón.
- El Perceptrón: Interpretación Geométrica.
- Tipos de Neuronas: Lineales y no Lineales.
- Ejemplo de una red Neuronal.
- Funciones realizables con el Perceptrón: AND y OR.
- Función XOR sería realizable con un Perceptrón?
- Características del modelo del Perceptrón.
- Redes MULTICAPA. Tipos.
- Aprendizaje en las Redes Neuronales.
- Algoritmo de entrenamiento del Perceptrón.
- Implementación de un Perceptrón.
- Ejemplo de entrenamiento del Perceptrón.
- Codificación del Perceptrón en “C”.
12. Redes Neuronales. Perceptrón Multicapa. Backpropagation.
- El Perceptrón Multicapa:
- Introducción.
- Asociación de dos perceptrones.
- Arquitectura.
- Capacidad de Representación.
- Ejercicio.
- Algoritmo BACKPROPAGATION: Descripción.
- Implementación de la función XOR mediante una red Multicapa (Arduino).
- Pseudocódigo del Algoritmo de Retropropagación.
- Algoritmo Backpropagation. Inconvenientes.
- Ejercicio del Algoritmo Backpropagation.
- Ejemplo de Backpropagation en Arduino.
- El Perceptrón Multicapa. Sobre ajuste (Overfitting).
- Ejemplo de Backpropagation en “C”. Clasificador Iris.
13. Redes Neuronales. Matlab.
- Introducción de Matlab con RNA.
- Utilizar comandos de la Neural Network Toolbox de Matlab.
- Crear una red neuronal tipo feed-forward (FFNN).
- Comando para el Entrenamiento de la RNA (train).
- Comando de simulación de una RNA mediante la Toolbox de Matlab.
- Ejemplo: crear una RNA con Matlab.
- Ejemplo: Backpropagation Función lógica XOR.
- Preparar Datos de Entrada… Escalado.
- Ejemplo de Función AND con Perceptrón con Matlab.
- Comando NNSTART de Matlab.
- Herramienta NNTOOL. Introducción.
- Matriz de Confusión Binaria con RNA. Ejemplo.
- Laboratorio. Función XOR con NNTOOL. Matlab
- Ejemplo de Clasificación de Iris-Flores con RNA. Matlab.
14. Redes Neuronales. Aplicaciones.
- Ejemplo-RNA: Clasificación de Iris-Flores con RNA. Arduino. Laboratorio.
- Ejemplo-RNA: Reconocimiento de dígitos hexadecimales BCD. Matlab y en “C” Arduino.
- Limitación del Perceptrón. Laboratorio de Clasificación de Libros con RNA. Matlab.
- Ejemplo RNA. Predicción de Lluvia. Matlab.
- Ejemplo RNA. Predicción de Lluvia en “C”.
Laboratorios prácticos Inteligencia Artificial: (Código Fuente en “C” y scripts de Matlab)
Laboratorios- Lenguaje "C" aplicado IA. Árboles:
- Implementación de una Cola de Prioridad.
- Funciones de manejo de árboles aplicados a la IA.
- Implementación de un algoritmo el manejo de funciones de búsqueda mediante Árboles Binarios.
Laboratorios- Búsquedas de Soluciones IA:
- Diseñar e implementar un Algoritmo para resolver el problema de dos jarras de agua, una de 4 litros y otra de 3 litros sin escala de medición.
- Implementar un algoritmo para encontrar un patrón de tipo cadena, aplicando el método de la Fuerza Bruta.
- Implementar un algoritmo del manejo de funciones para la Búsqueda en Profundidad y Anchura (DFS).
- Implementar un algoritmo Búsqueda Primero en Profundidad (DFS).
- Implementar un algoritmo del problema de la mochila de tal forma que se maximizar el número de objetos transportados con su máximo valor de beneficio.
- Implementar un algoritmo búsqueda para encontrar las Llaves. Para ello vamos a utilizar un robot donde tiene el plano de su casa almacenado.
- Implementar un algoritmo búsqueda de vuelos aéreos.
- Implementar un algoritmo Adivina un número. Heurística.
- Implementar un Algoritmo del Juego Tres en Raya aplicando una teoría aleatoria.
- Implementar un Algoritmo del Juego Tres en Raya aplicando MINIMAX.
- Implementar un Algoritmo para resolver el problema del vendedor ambulante (TSP).
- Implementar un Algoritmo de Dijkstra determina la ruta más corta desde un nodo origen hacia los demás nodos
Laboratorios-Árboles de Decisión:
- Implementar un Algoritmo de Árbol de decisión. Arduino.
- Implementar un Algoritmo de Árbol de decisión aplicando el Algoritmo ID3.
Laboratorios-Regresión Lineal y Logística:
- Implementación de una Regresión Lineal de una forma simple.
- Implementación de una Regresión Lineal aplicada a la estimación del coste de un vehículo en función de los km recorridos.
- Implementación que partiendo de unos datos adquiridos de Pesos y estatura se obtenga una regresión Lineal empleando formato de matrices.
- Implementación Regresión Múltiple para ello se parte de unos datos adquiridos y almacenados en un fichero (peso_data.txt).
- Implementación que partiendo de unos datos adquiridos y aplicamos la regresión logística mediante la función sigmoide.
Laboratorios-Gradiente Descendente:
- Implementación del algoritmo del Gradiente descendente (AGD), para ello partimos de unos datos adquiridos y almacenados en fichero data.txt, con los que debemos realizar una predicción.
- Implementación que partiendo de unos datos adquiridos (temperatura) y queremos obtener una predicción de temperatura mediante el algoritmo de Gradiente descendente (AGD). Arduino.
Laboratorios-Redes Neuronales:
- Implementación de una red neuronal del tipo McCulloch-Pitts,.
- Implementación de una función lógica tipo OR mediante la red ADALINE.
- Implementación de un control de dirección Robot con la red Adaline, para ello se parte de los pesos y el bias ó umbral obtenidos en Matlab. Arduino.
- Implementación de una función lógica tipo XOR mediante la red MADALINE.
- Implementación de la Estimación de la frecuencia de red eléctrica con la red ADALINE.
- Implementación de un Filtro Adaptativo de cancelación de ruido con algoritmo LMS.
- Implementación de una red neuronal del tipo "Perceptrón".
- Implementación del Perceptrón Multicapa con el método de Backpropagation.
- Implementación de clasificación, partiendo del conjunto de datos de la base de datos de iris (flores) utilizando el algoritmo de clasificación “Uno contra Todos” y las redes neuronales.
- Implementación de la función lógica AND mediante una red neuronal del tipo "Perceptrón", en el entorno de Matlab.
- Implementación de clasificación, partiendo del conjunto de datos de la base de datos de iris (flores) utilizando el algoritmo de clasificación mediante, en el entorno de Matlab y Arduino.
- Identificación de patrones numéricos (par, impar, >5, primo) utilizando Redes Neuronales Artificiales con el algoritmo BackPropagation, el sistema es capaz de reconocer y representar los números del 0 al 9 y las letras por medio de una interfaz de usuario montado en un sistema embebido (Arduino).
- Clasificación automática, partiendo de una base de datos de 200.000 libros que dispone una biblioteca, necesita clasificarlo en 4 grupos diferentes para decidir en qué parte de la biblioteca serán colocados.
- Predicción de Lluvia, para ello a partir de unos datos meteorológicos y con tres días de anticipación vamos a calcular el día 4º si va a llover y su tipo de precipitación.
- Predictor de Lluvia con una Red Neuronal en Lenguaje "C", para ello a partir de unos datos meteorológicos y con tres días de anticipación vamos a calcular el día 4º si va a llover y su tipo de precipitación. Para ello hacemos el entrenamiento y luego la predicción de lluvia.