Dr. Alfredo de Jesús Gutiérrez Gómez
Dr. Alfredo de Jesús Gutiérrez Gómez
Presentación
Temas
Unidad I
1. Introducción
1.1. Desarrollo histórico de la I. A.
1.2. Áreas de aplicación.
1.3 Lenguajes de programación para I. A.
Temas
Unidad I
1. Introducción
1.1. Desarrollo histórico de la I. A.
1.2. Áreas de aplicación.
1.3 Lenguajes de programación para I. A.
Temas
Unidad 2
2. Representación y búsqueda
2.1 Cálculo de predicados
2.2 Búsqueda heurística
2.3 Métodos estocásticos
Temas
Unidad 3
3 Representación y razonamiento.
3.1. Representación de conocimiento.
3.2 Sistemas expertos.
Políticas de clase
Lineamientos de clase
menos dos veces por semana, durante la duración del curso.
Cumplir dentro del aula virtual con todas las tareas, foros y actividades detalladas por el
programa académico y el profesor, en el tiempo y forma establecidos. El incumplimiento de las
tareas en tiempo y forma llevarán a una no aprobación del curso.
Lineamientos de clase
Realizar el seguimiento evaluativo personal desde el Portafolio del Aula Virtual.
Estar pendiente de los resultados de las evaluacion/es parcial/es y final/es.
Notificar al tutor por escrito, con copia a la coordinación académica, si, por alguna razón excepcional, se encontrara en una circunstancia especial que le impidiera continuar con el curso y recibir así indicaciones de cómo proceder a partir de ese momento.
Descripción Actividades
Unidad 1
Descripción Actividades
Unidad 2
Descripción Actividades
Unidad 3
Actividad de encuadre
¿Qué esperas que se enseñe en este curso?
En cinco minutos responde a la siguiente pregunta:
Actividad de encuadre
¿A qué te comprometes en este curso?
En cinco minutos responde a la siguiente pregunta:
Actividad de encuadre
¿Qué deseas aprender en este curso?
En cinco minutos responde a la siguiente pregunta:
Recomendaciones para actividades
Trabajos
Párrafos
Gramática - ortografía
Recomendaciones para actividades
Referencias
Lista de bibliografía
*Usar una bitácora digital
¿Preguntas?
Introducción a la I.A.
¿Qué es la
inteligencia artificial?
Definiendo A.I.
John McCarthy | Elaine Rich | Russell y Norvig |
---|---|---|
La ciencia y la ingeniería de hacer máquinas inteligentes, especialmente programas de computadora | El estudio de cómo hacer que las computadoras realicen tareas que, hasta ahora, los humanos hacían mejor | La inteligencia artificial es la simulación de procesos de inteligencia humana por parte de sistemas informáticos |
Resumiendo A.I.
Tareas humanas | Involucra | Multidiciplinaria |
---|---|---|
capacidad de las máquinas y sistemas informáticos para realizar tareas que normalmente requieren inteligencia humana | involucra el desarrollo de algoritmos y técnicas que permiten a las máquinas procesar grandes cantidades de datos, aprender de ellos y tomar decisiones en función de esos datos. | abarca la informática, las matemáticas, la estadística y la ingeniería, y que busca desarrollar sistemas informáticos que sean capaces de realizar tareas que normalmente requieren inteligencia humana. |
¿Tareas humanas que requieren inteligencia?
Actividad de aprendizaje
Lista cinco actividades que consideres requiera "inteligencia humana" y describe el ¿por qué?
Duración: cinco minutos
Actividad de aprendizaje
Actividad | ¿por qué? |
---|---|
|
|
|
¿Los asistentes son A.I.?
Respuesta | ¿por qué? |
---|---|
Si |
|
No |
¿Los asistentes son A.I.?
Si, por que: |
---|
Combinación de técnicas de procesamiento del lenguaje natural, aprendizaje automático y otros algoritmos de inteligencia artificial para comprender el lenguaje natural hablado por los usuarios y proporcionar respuestas y asistencia en función de los comandos que reciben. |
Realizar diversas tareas, como hacer llamadas telefónicas, enviar mensajes de texto, reproducir música, proporcionar información sobre el clima, buscar en la web, hacer recordatorios y programar alarmas. |
Pueden aprender y adaptarse a las preferencias de los usuarios con el tiempo, lo que demuestra su capacidad de aprender y mejorar a través del uso de técnicas de aprendizaje automático. |
¿Cómo definimos la I.A.?
Arte multidiciplinario, que permite ayudar al ser humano en tareas rutinaria con un nivel de inteligencia bajo. Al menos hasta ahora
¿Dudas?
Actividad de repaso
1. Tener una definición sobre IA
2. Crear una propia definición de IA
3. Llegar colectivamente a una misma definición de I.A.
Tiempo de ejecución: 5 min
División de la I.A
Aprendizaje automático
Visión por computadora
Procesamiento del lenguaje natural
Robótica
Aprendizaje automático
Es una rama de la IA que se enfoca en enseñar a las computadoras a aprender patrones a partir de datos, para que puedan tomar decisiones o hacer predicciones por sí mismas
Aprendizaje automático
Ejemplos
Clasificador de email | Reconocimiento de voz | Diagnóstico médico |
---|---|---|
Utiliza para analizar los patrones y las características de los correos electrónicos y aprender a identificarlos no deseados de manera efectiva. | Utilizan algoritmos de aprendizaje automático para analizar las ondas de sonido de la voz y aprender a identificar los patrones de la voz de diferentes hablantes | Utilizando para mejorar la precisión y la velocidad del diagnóstico médico |
Aprendizaje automático
Los sistemas de aprendizaje automático pueden analizar grandes conjuntos de datos (de cualquier tipo) para aprender a identificar patrones y características que pueden ser indicativos de diferentes enfermedades o condiciones. Esto se utiliza en aplicaciones como la detección temprana del cáncer o la identificación de enfermedades raras.
Actividades de aprendizaje
1. investigar tres ejemplos diferentes donde se use el aprendizaje automático.
2. Cree una tabla descriptiva donde se incluya el encabezado y una breve descripción en donde se aplica.
Visión por computadora
Desarrolla de algoritmos y técnicas que permiten a las computadoras interpretar y comprender imágenes y videos digitales.
Implica técnicas de procesamiento de imágenes y análisis estadístico para identificar patrones, objetos, rostros, escenas entre otras
aplicaciones, reconocimiento de rostros, la detección de objetos en imágenes, la conducción autónoma, la inspección de calidad en la industria manufacturera, el monitoreo de seguridad, la realidad aumentada y la realidad virtual, entre otros.
Visión por computadora
Hace uso del aprendizaje automático, como redes neuronales convolucionales, para identificar patrones y características en las imágenes y videos.
Disciplina interdisciplinaria que involucra conocimientos de matemáticas, estadística, ingeniería eléctrica y de computación, y ciencias cognitivas.
Visión por computadora
Ejemplos
Reconocimiento de objetos | Conducción autónoma | Realidad aumentada |
---|---|---|
Detectan y clasificar objetos en imágenes o videos. Utiliza en aplicaciones como la vigilancia de seguridad. | Detectar y reconocer señales de tráfico, peatones, otros vehículos y obstáculos en la carretera | Utiliza la visión por computadora para superponer información digital en el mundo físico en tiempo real. |
Actividad de aprendizaje
Procesamiento del lenguaje natural
El procesamiento de lenguaje natural (NLP, por sus siglas en inglés) es una rama de la inteligencia artificial y la lingüística computacional que se enfoca en el desarrollo de algoritmos y técnicas que permiten a las computadoras comprender, interpretar y generar lenguaje humano de manera natural.
Procesamiento de lenguaje natural
El NLP utiliza técnicas de aprendizaje automático y procesamiento de datos para analizar el lenguaje humano en todas sus formas, incluyendo texto escrito, habla y señales gestuales.
El NLP se utiliza en una amplia variedad de aplicaciones, como la traducción automática, el análisis de sentimientos, la generación de resúmenes, la búsqueda de información, el reconocimiento de voz y la respuesta automática a preguntas, entre otros.
Procesamiento de lenguaje natural
El objetivo del procesamiento de lenguaje natural es permitir que las computadoras interactúen con los humanos en su propio lenguaje y enriquezcan la experiencia del usuario en diferentes áreas, desde el comercio electrónico hasta la atención médica.
Procesamiento del lenguaje natural
Ejemplos
Asistentes de voz | Chatbots | Análisis de sentimientos |
---|---|---|
Comprender y responder a las preguntas y comandos de los usuarios. Esto se logra mediante el reconocimiento de voz y el análisis sintáctico y semántico del lenguaje hablado. | interactúan con usuarios a través de texto escrito o hablado. Usado en la atención al cliente, la reserva de citas y la venta de productos y servicios. | identificar y extraer información sobre la actitud o emoción expresada en un texto escrito. Identificación de palabras y frases clave. |
Actividad de aprendizaje
Robótica
Se ocupa del diseño, la construcción, la programación y el uso de robots.
Los robots son máquinas programables que realizan tareas automáticamente, y pueden ser controlados por un humano o actuar de forma autónoma.
Se aplica en una amplia variedad de campos, desde la manufactura y la construcción hasta la exploración espacial y la medicina.
Robótica
Ejemplos
Industriales | Exploración espacial | Quirúrgicos |
---|---|---|
Trabajan en entornos industriales, realizar tareas repetitivas y peligrosas, están equipados con sensores y sistemas de visión artificial para realizar estas tareas precisas. | Equipados con cámaras, herramientas científicas y sistemas de locomoción para navegar por terrenos difíciles y realizar mediciones y análisis en tiempo real. | Diseñados para ser controlados por cirujanos a través de una consola, equipados con brazos robóticos y herramientas quirúrgicas para realizar incisiones y suturas con precisión milimétrica. |
Actividad de aprendizaje
Comentarios!
Historia de la I.A.
Historia de la I.A.
Crear una máquina que pudiera pensar como un ser humano se remonta a la antigua Grecia
En 1950 se crea formalmente el campo de estudio.
Científicos y matemáticos comenzaron a investigar cómo se podía enseñar a las computadoras a "pensar" y tomar decisiones autónomas.
la IA se centró en la resolución de problemas y la creación de programas que pudieran simular el pensamiento humano
Historia de la I.A.
Centró en la resolución de problemas y la creación de programas que pudieran simular el pensamiento humano
Desarrollo de sistemas expertos, programas de ordenador diseñados para imitar el juicio y la toma de decisiones de un experto en un campo específico.
Llegada de los sistemas de redes neuronales artificiales y el aprendizaje automático, que permitían a las computadoras aprender y mejorar a partir de datos y experiencias.
la IA se hizo más común en la vida cotidiana, gracias a la popularización de los asistentes virtuales y el procesamiento del lenguaje natural
Historia de la I.A.
Hoy en día, la IA se utiliza en una amplia variedad de aplicaciones, desde la atención al cliente y la detección de fraude hasta la medicina y la exploración espacial. Se espera que la IA siga evolucionando y transformando muchos aspectos de nuestra vida en el futuro.
Actividad de aprendizaje
¡Comentarios! ¿Dudas?
Areas de aplicación de la I.A.
Industria y manufactura
Servicios financieros
Salud
Transporte
Servicios al cliente
Marketing
Educación
Gobierno y servicios públicos
Actividad de aprendizaje
¡Comentarios! ¿Dudas?
Lenguajes de programación de I.A.
Python
Lenguajes de programación de I.A.
R
Java
C++
Matlab
Lisp
Actividad de aprendizaje
¡Comentarios! ¿Dudas?
Representación y búsqueda
Representación
Forma en la que se codifican y se estructuran los datos para que puedan ser procesados por un sistema de IA.
En otras palabras es la manera en que se representa el conocimiento que tiene una máquina para que pueda ser procesado y utilizado para tomar decisiones.
Forma de Representación
La representación lógica.
Representación basada en redes neuronales
Representación basada en reglas
Entre otras.
Representación lógica
Es un área de la inteligencia artificial que se encarga de encontrar formas de representar el conocimiento de manera que las máquinas puedan entenderlo y utilizarlo para tomar decisiones. Una de las formas más comunes de representar el conocimiento es la representación lógica, que se basa en la lógica matemática.
Representación lógica
El conocimiento se expresa en términos de declaraciones lógicas, que pueden ser verdaderas o falsas. Estas declaraciones se representan mediante un lenguaje formal llamado lógica proposicional o lógica de predicados.
Representación lógica
La lógica proposicional, se utilizan símbolos para representar proposiciones y conectores lógicos para combinarlas.
Representación lógica
La lógica proposicional <-> conectores lógicos más comunes
Representación lógica
En la lógica de predicados, se utilizan símbolos para representar predicados y cuantificadores para expresar la cantidad de elementos que cumplen con un determinado predicado.
Representación lógica
Lógica de predicados <-> Conectores más comunes:
Representación lógica
Ejemplos
Sistemas expertos
Diagnóstico médico
Planificación de tareas
Sistemas de recomendación
Representación lógica
Ejemplos
Sistemas de recomendación
Son sistemas informáticos que sugieren productos o servicios a los usuarios en base a sus preferencias y comportamientos pasados.
La representación lógica se puede utilizar para modelar los datos del usuario y las recomendaciones posibles, y permitir que el sistema realice inferencias y ofrezca recomendaciones personalizadas.
Representación lógica
Ejemplos
Planificación de tareas
Utilizada para planificar tareas y secuencias de acciones. Por ejemplo, se pueden utilizar reglas lógicas para expresar los requisitos previos y posteriores de una tarea, y de esta manera, permitir que una máquina planifique y ejecute una secuencia de tareas de manera automatizada.
Representación lógica
Ejemplos
Diagnóstico médico
En medicina, se utiliza la representación lógica para modelar el conocimiento médico y ayudar en el proceso de diagnóstico.
Por ejemplo, se pueden utilizar reglas lógicas para relacionar síntomas con posibles enfermedades, y de esta manera, ayudar a los médicos en la identificación de enfermedades.
Representación lógica
Ejemplos
Sistemas expertos
Los sistemas expertos son sistemas informáticos que utilizan el conocimiento experto en un dominio específico para tomar decisiones y resolver problemas.
La representación lógica es utilizada para expresar las reglas del dominio y permitir que el sistema experto realice inferencias y tome decisiones en base a ellas.
Representación lógica
Es útil cuando se desea expresar el conocimiento en términos precisos y formales, y es particularmente útil para la resolución de problemas y la toma de decisiones en entornos en los que las reglas son claras y bien definidas.
Representación en redes neuronales
Inspirado en el funcionamiento del cerebro humano.
Diseñadas para procesar información y aprender patrones complejos a partir de datos de entrada.
Capacidad de la red de aplicar lo que ha aprendido a situaciones nuevas.
Representación en redes neuronales
Diferentes enfoques
Codificación one-hot
Codificación de características
Redes neuronales convolucionales
Redes neuronales recurrentes
Representación en redes neuronales
Diferentes enfoques
Codificación one-hot
Se utiliza para representar datos categóricos o nominales, como colores, géneros, categorías de productos, entre otros
Representación en redes neuronales
Diferentes enfoques
Codificación one-hot
Ejemplos:
Clasificación de colores
Supongamos que queremos entrenar una red neuronal para clasificar diferentes colores en tres categorías: rojo, verde y azul.
Representación en redes neuronales
Diferentes enfoques
Codificación one-hot
Ejemplos:
Clasificación de colores
Para hacerlo, podemos utilizar la codificación one-hot de la siguiente manera:
De esta forma, la red neuronal recibirá un vector de entrada con un valor de 1 en la posición correspondiente al color y 0 en todas las demás posiciones.
Representación en redes neuronales
Diferentes enfoques
Codificación one-hot
Ejemplos:
Clasificación de géneros
Supongamos que queremos entrenar una red neuronal para clasificar géneros en dos categorías: masculino y femenino.
Representación en redes neuronales
Diferentes enfoques
Codificación one-hot
Ejemplos:
Clasificación de géneros
La codificación one-hot, puede quedar de la siguiente manera:
De esta forma, la red neuronal recibirá un vector de entrada con un valor de 1 en la posición correspondiente al género y 0 en todas las demás posiciones.
Representación en redes neuronales
Diferentes enfoques
Codificación one-hot
Ejemplos:
Clasificación de categorías de productos
Se quiere entrenar una red neuronal para clasificar diferentes categorías de productos en cuatro categorías: electrónica, ropa, hogar y deportes.
De esta forma, la red neuronal recibirá un vector de entrada con un valor de 1 en la posición correspondiente al género y 0 en todas las demás posiciones.
Representación en redes neuronales
Diferentes enfoques
Codificación one-hot
Ejemplos:
Clasificación de categorías de productos
Para hacerlo, podemos utilizar la codificación one-hot de la siguiente manera:
De esta forma, la red neuronal recibirá un vector de entrada con un valor de 1 en la posición correspondiente a la categoría de producto y 0 en todas las demás posiciones.
Representación en redes neuronales
Diferentes enfoques
Codificación de características
Conocida como codificación de características aprendidas o codificación de características semánticas, es una técnica utilizada en las redes neuronales para representar el conocimiento.
Esta técnica permite que una red neuronal aprenda características relevantes de los datos de entrada y, posteriormente, utilice esas características para clasificar y predecir nuevos datos.
Definición
Representación en redes neuronales
Diferentes enfoques
Codificación de características
Conocida como codificación de características aprendidas o codificación de características semánticas, es una técnica utilizada en las redes neuronales para representar el conocimiento.
Esta técnica permite que una red neuronal aprenda características relevantes de los datos de entrada y, posteriormente, utilice esas características para clasificar y predecir nuevos datos.
Definición
Representación en redes neuronales
Diferentes enfoques
Codificación de características
En la codificación de características, en lugar de proporcionar directamente los datos de entrada a la red neuronal, se procesan los datos de entrada mediante capas de convolución, capas de agrupación y otras técnicas de procesamiento de señales para extraer características relevantes de los datos de entrada.
Estas características se representan como vectores de características que se utilizan como entrada a las capas de clasificación y predicción de la red neuronal.
Definición
Representación en redes neuronales
Diferentes enfoques
Codificación de características
Utilizada en:
Utiliza a menudo en aplicaciones de visión por computadora y procesamiento de imágenes, donde la extracción de características puede ayudar a identificar patrones y objetos en las imágenes.
También se utiliza en el procesamiento del lenguaje natural para extraer características de las palabras y las oraciones que se utilizan para la clasificación y predicción.
Representación en redes neuronales
Diferentes enfoques
Codificación de características
Ventajas
Permite que la red neuronal aprenda automáticamente las características relevantes de los datos de entrada en lugar de tener que diseñar y seleccionar manualmente las características.
Esto puede mejorar significativamente el rendimiento de la red neuronal en tareas de clasificación y predicción, especialmente cuando se utilizan grandes conjuntos de datos.
Representación en redes neuronales
Diferentes enfoques
Codificación de características
Ejemplos
Clasificación de imágenes:
En la clasificación de imágenes, la red neuronal debe identificar las características relevantes de la imagen para clasificarla correctamente. La codificación de características puede ayudar en este proceso al extraer características específicas de la imagen, como bordes, formas y colores. Por ejemplo, se podría utilizar una capa de convolución para extraer características como bordes y formas, y luego una capa completamente conectada para clasificar la imagen según las características extraídas.
Representación en redes neuronales
Diferentes enfoques
Codificación de características
Ejemplos
Análisis de sentimientos:
En el análisis de sentimientos, la red neuronal debe ser capaz de identificar características en el texto que puedan indicar la emoción del autor. La codificación de características puede ser útil para este proceso al extraer características específicas del texto, como la presencia de palabras positivas o negativas. Por ejemplo, se podría utilizar una técnica de bolsa de palabras para codificar el texto, donde cada palabra se convierte en un vector numérico que representa su frecuencia de aparición en el texto, y luego una capa completamente conectada para clasificar la emoción del autor según las características extraídas.
Representación en redes neuronales
Diferentes enfoques
Redes neuronales convolucionales
Definición
Las redes neuronales convolucionales (Convolutional Neural Networks o CNNs en inglés) son un tipo de red neuronal especializada en el procesamiento de datos con estructura de malla, como imágenes y videos.
Representación en redes neuronales
Diferentes enfoques
Redes neuronales convolucionales
Definición
En una CNN, la capa convolucional es la clave para extraer características importantes de la imagen.
La capa convolucional consta de varios filtros (también llamados núcleos) que se aplican a la imagen de entrada para extraer características específicas.
Cada filtro se mueve a través de la imagen y realiza una operación de convolución para producir un mapa de características. Estos mapas de características representan la imagen de entrada de una manera más compacta y abstracta
Representación en redes neuronales
Diferentes enfoques
Redes neuronales convolucionales
Definición
Después de la capa convolucional, generalmente se utiliza una capa de submuestreo para reducir el tamaño del mapa de características y disminuir la cantidad de parámetros de la red. Luego, se utilizan capas completamente conectadas para clasificar la imagen en categorías.
Representación en redes neuronales
Diferentes enfoques
Redes neuronales convolucionales
Ejemplos:
Reconocimiento de objetos en imágenes: Las CNN se utilizan ampliamente en aplicaciones de reconocimiento de objetos en imágenes. Por ejemplo, se pueden utilizar para identificar automáticamente la presencia de objetos en las imágenes médicas, como radiografías o tomografías computarizadas, para ayudar en el diagnóstico de enfermedades.
Representación en redes neuronales
Diferentes enfoques
Redes neuronales convolucionales
Ejemplos:
Detección de fraude en transacciones financieras: Las CNN se utilizan para detectar patrones de fraude en transacciones financieras, como compras realizadas con tarjetas de crédito robadas. La CNN puede analizar los patrones de gasto y detener automáticamente las transacciones sospechosas.
Representación en redes neuronales
Diferentes enfoques
Redes neuronales convolucionales
Ejemplos:
Automóviles autónomos: Las CNN se utilizan en la detección de objetos para los automóviles autónomos, permitiendo al vehículo detectar peatones, ciclistas y otros vehículos en tiempo real para evitar accidentes.
Representación en redes neuronales
Diferentes enfoques
Redes neuronales convolucionales
Ejemplos:
Reconocimiento de voz: Las CNN también se utilizan para reconocimiento de voz, como en los asistentes virtuales y dispositivos de domótica. La CNN puede procesar la señal de audio y convertirla en texto, permitiendo al usuario interactuar con el dispositivo a través de comandos de voz.
Representación en redes neuronales
Diferentes enfoques
Basado en reglas
Definición
Representar y utilizar el conocimiento en forma de reglas lógicas. Consiste en definir una serie de reglas que establecen relaciones lógicas entre diferentes conceptos o entidades del dominio de interés.
Las reglas lógicas suelen tener la forma "si-entonces", donde la parte "si" establece las condiciones que deben cumplirse para que la regla sea aplicable, y la parte "entonces" establece la acción o conclusión que se deduce si se cumplen las condiciones.
Representación en redes neuronales
Diferentes enfoques
Basado en reglas
Ventajas
Facilidad de comprensión: Las reglas lógicas son fácilmente comprensibles para los humanos, lo que permite que los expertos del dominio puedan colaborar en la definición de las reglas y mejorar la precisión de los resultados.
Flexibilidad: Las reglas lógicas pueden ser modificadas o actualizadas fácilmente sin necesidad de reentrenar un modelo o sistema completo.
Capacidad de razonamiento: La representación del conocimiento basada en reglas permite el razonamiento deductivo e inductivo, permitiendo al sistema hacer inferencias y deducciones a partir de la información disponible.
Representación en redes neuronales
Diferentes enfoques
Basado en reglas
Limitaciones
Escalabilidad: La representación del conocimiento basada en reglas puede ser difícil de escalar a sistemas complejos con grandes cantidades de datos y reglas.
Incertidumbre: Las reglas lógicas no son capaces de manejar la incertidumbre o la imprecisión de los datos, lo que puede limitar su capacidad para manejar situaciones ambiguas.
Representación en redes neuronales
Diferentes enfoques
Basado en reglas
Ejemplo:
Planificación de rutas: La representación del conocimiento basada en reglas se utiliza en sistemas de planificación de rutas, como los sistemas de navegación GPS.
Se pueden definir reglas lógicas que establezcan las condiciones para determinar la mejor ruta a seguir, teniendo en cuenta factores como el tráfico, la distancia y el tiempo de llegada.
Representación en redes neuronales
Diferentes enfoques
Basado en reglas
Ejemplo:
Análisis de datos: La representación del conocimiento basada en reglas se utiliza en el análisis de datos para detectar patrones o tendencias.
Se pueden definir reglas lógicas que establezcan las condiciones para detectar patrones en los datos y tomar decisiones en función de esos patrones.
Retos de aprendizaje
Búsqueda
Es la capacidad de una máquina para buscar y encontrar soluciones a problemas específicos utilizando algoritmos de búsqueda.
Los algoritmos de búsqueda son métodos computacionales que permiten a la máquina examinar sistemáticamente una serie de posibles soluciones para encontrar la mejor o la óptima.
Definición
Búsqueda
B. en árbol
Tipos de algoritmos
B. en
profundidad
B. en anchura
B. heurística
B. informada
Búsqueda
Tipos de algoritmos
B. en profundidad
La búsqueda en profundidad es un algoritmo de búsqueda utilizado en inteligencia artificial y otras áreas de la informática para encontrar una solución a un problema mediante la exploración sistemática de todas las posibles soluciones en profundidad antes de retroceder a niveles anteriores.
Búsqueda
Tipos de algoritmos
B. en profundidad
Se comienza en el nodo raíz y se examina cada uno de sus sucesores hasta llegar a una hoja del árbol de soluciones.
Si no se encuentra la solución en la hoja actual, el algoritmo retrocede al nodo padre y examina el siguiente sucesor.
Este proceso se repite hasta que se encuentra una solución o se han examinado todos los nodos.
Búsqueda
Tipos de algoritmos
B. en profundidad
Este algoritmo es fácil de implementar y no requiere mucha memoria, ya que solo es necesario mantener en memoria los nodos de la ruta actual en el árbol de soluciones.
Sin embargo, puede ser ineficiente en problemas donde hay muchos nodos a explorar o dónde la solución se encuentra en una rama profunda del árbol, ya que puede llevar mucho tiempo encontrarla.
Búsqueda
Tipos de algoritmos
B. en profundidad
Resolución de laberintos: La búsqueda en profundidad se puede utilizar para resolver laberintos.
Cada nodo representa una posición en el laberinto y cada sucesor representa una posible dirección a seguir.
El algoritmo comienza en la posición inicial y avanza hacia adelante hasta que encuentra la solución, retrocediendo en caso de llegar a un callejón sin salida.
Ejemplos
Búsqueda
Tipos de algoritmos
B. en profundidad
Búsqueda de caminos en juegos: La búsqueda en profundidad se puede utilizar para encontrar el mejor camino a seguir en juegos como el ajedrez, el go o el reversi.
En este caso, cada nodo representa un estado del juego y cada sucesor representa un movimiento posible.
El algoritmo comienza en el estado actual del juego y avanza hacia adelante hasta encontrar una solución o un estado final.
Ejemplos
Búsqueda
Tipos de algoritmos
B. en Anchura
Conocidos como BFS, (por sus siglas en inglés) son una técnica de búsqueda que se utiliza para recorrer y buscar en un grafo o árbol.
El algoritmo comienza en el nodo raíz y explora todos los nodos vecinos de la raíz, luego explora todos los nodos vecinos de los nodos visitados y así sucesivamente, hasta que se encuentre el nodo objetivo o se hayan visitado todos los nodos.
Definición
Búsqueda
Tipos de algoritmos
B. en Anchura
Utiliza una estructura de datos llamada cola (queue) para almacenar los nodos visitados.
Los nodos se insertan en la cola en el orden en que se visitan, y se eliminan de la cola en el mismo orden en que se insertaron.
De esta manera, el algoritmo visita primero todos los nodos a una profundidad dada antes de pasar a los nodos de profundidad d+1.
Definición
Búsqueda
Tipos de algoritmos
B. en Anchura
El algoritmo de búsqueda en anchura es completo, es decir, encuentra una solución si existe, y encuentra la solución óptima en el caso de un grafo con costos uniformes.
Sin embargo, puede ser muy ineficiente en grafos con ramificación alta o profundidad grande, ya que debe almacenar todos los nodos visitados en la cola.
Definición
Búsqueda
Tipos de algoritmos
B. en Anchura
Una variante del algoritmo de búsqueda en anchura es la búsqueda en anchura limitada (BLFS), que establece un límite máximo en la profundidad que se puede explorar.
De esta manera, se puede evitar la expansión de nodos innecesarios en grafos muy grandes.
Variantes
Búsqueda
Tipos de algoritmos
B. en Anchura
Otra variante es la búsqueda en anchura bidireccional (BFS), que se utiliza para encontrar el camino más corto entre dos nodos en un grafo.
El algoritmo comienza en el nodo fuente y en el nodo destino, y explora en ambas direcciones hasta que los dos caminos se encuentran.
Variantes
Búsqueda
Tipos de algoritmos
B. en Anchura
Realizar un recorrido de grafos: los algoritmos de búsqueda en anchura se pueden utilizar para recorrer un grafo y encontrar todas las conexiones entre los nodos.
Por ejemplo, se podría utilizar para encontrar todos los amigos de un usuario en una red social, donde cada usuario se considera un nodo y las conexiones entre ellos representan las amistades.
Ejemplos
Búsqueda
Tipos de algoritmos
B. en Anchura
Encontrar la ruta más corta en un mapa: los algoritmos de búsqueda en anchura se pueden utilizar para encontrar la ruta más corta entre dos lugares en un mapa.
Cada lugar se considera un nodo, y los nodos vecinos son aquellos que se pueden llegar directamente desde el lugar actual.
Ejemplos
Búsqueda
Tipos de algoritmos
B. Heurística
Técnica de búsqueda que se utiliza para encontrar soluciones en problemas complejos en los que la búsqueda exhaustiva no es práctica o posible.
A diferencia de los algoritmos de búsqueda clásicos, la búsqueda heurística utiliza información adicional, llamada heurística, para guiar la búsqueda hacia las soluciones más prometedoras.
Definición
Búsqueda
Tipos de algoritmos
B. Heurística
La heurística es una función que estima la distancia o el costo desde un estado actual hasta el estado objetivo.
Esta función puede ser diseñada a medida para cada problema, o puede ser una función general que se utiliza para diferentes problemas.
La heurística se utiliza para evaluar el estado actual y decidir qué estado se debe explorar a continuación.
Definición
Búsqueda
Tipos de algoritmos
B. Heurística
Un ejemplo común de búsqueda heurística es el algoritmo A*.
Este algoritmo combina la búsqueda en anchura con una heurística para encontrar el camino más corto en un grafo con costos variables.
La heurística se utiliza para guiar la búsqueda hacia el objetivo, lo que reduce el número de nodos que se deben explorar y mejora la eficiencia del algoritmo.
Ejemplos
Búsqueda
Tipos de algoritmos
B. Heurística
El algoritmo de Hill Climbing, que busca una solución óptima en un espacio de soluciones.
El algoritmo comienza en un estado aleatorio y se mueve hacia estados vecinos que tienen una mejor heurística.
El algoritmo continúa moviéndose hacia estados con mejores heurísticas hasta que no hayan estados vecinos con una mejor heurística.
Ejemplos
Búsqueda
Tipos de algoritmos
B. Heurística
La búsqueda heurística es muy útil en problemas en los que la búsqueda exhaustiva no es posible, ya que permite encontrar soluciones en un tiempo razonable.
Sin embargo, la calidad de la solución depende en gran medida de la calidad de la heurística utilizada, por lo que es importante elegir una heurística adecuada para el problema en cuestión.
Búsqueda
Tipos de algoritmos
B. Informada
Conocida como búsqueda heurística informada, es una técnica de búsqueda que utiliza información adicional para guiar la exploración hacia las soluciones más prometedoras.
Esta información adicional, llamada heurística, se utiliza para evaluar la calidad de los nodos y decidir qué nodos deben ser explorados primero.
Definición
Búsqueda
Tipos de algoritmos
B. Informada
A diferencia de la búsqueda ciega, en la que la exploración se realiza de manera uniforme sin información adicional, la búsqueda informada utiliza una heurística para evaluar los nodos y tomar decisiones informadas sobre qué nodos explorar a continuación.
La heurística es una función que estima la calidad del estado actual y su proximidad al objetivo.
Definición
Búsqueda
Tipos de algoritmos
B. Informada
Existen diferentes algoritmos de búsqueda informada, como A* (pronunciado "A estrella"), Best First Search y Greedy Best First Search.
El algoritmo A* es uno de los más populares y efectivos. Este algoritmo utiliza una función de costo que combina el costo real desde el nodo inicial hasta el nodo actual y la heurística que estima el costo del nodo actual al objetivo.
El algoritmo A* utiliza esta función de costo para determinar qué nodos explorar a continuación.
Definición
Búsqueda
Tipos de algoritmos
B. Informada
Es muy útil en problemas en los que la búsqueda ciega es impráctica o ineficiente debido a la gran cantidad de nodos que se deben explorar.
Además, la búsqueda informada puede encontrar soluciones más rápidamente y con menos exploración de nodos que la búsqueda ciega.
Sin embargo, la calidad de la solución depende en gran medida de la calidad de la heurística utilizada, por lo que es importante elegir una heurística adecuada para el problema en cuestión.
Definición
Búsqueda
Tipos de algoritmos
B. Informada
Juegos de estrategia: En juegos como el ajedrez, el juego de Go y otros juegos de estrategia, la búsqueda informada se utiliza para encontrar la mejor jugada posible.
Los algoritmos de búsqueda informada se utilizan para explorar el árbol de posibles jugadas y encontrar la mejor jugada en función de una heurística.
Ejemplos
Búsqueda
Tipos de algoritmos
B. Informada
Resolución de problemas en inteligencia artificial: La búsqueda informada se utiliza ampliamente en la resolución de problemas en inteligencia artificial, como el procesamiento del lenguaje natural, el reconocimiento de patrones y la visión por computadora.
Los algoritmos de búsqueda informada se utilizan para encontrar la solución óptima en un espacio de soluciones complejas.
Ejemplos
Búsqueda
Reto de aprendizaje
Calculo de predicado
Definición
Rama de la lógica matemática que estudia las proposiciones o enunciados que afirman o niegan algo acerca de los objetos de un dominio específico.
A diferencia de la lógica proposicional, que se centra en proposiciones simples y su relación de verdad o falsedad, el cálculo de predicados permite la cuantificación de las proposiciones y el razonamiento sobre las propiedades de los objetos en el dominio.
Calculo de predicado
Definición
Utiliza símbolos y fórmulas para representar proposiciones y sus relaciones.
Estas fórmulas pueden contener variables, constantes, predicados, conectores lógicos y cuantificadores.
Los cuantificadores permiten la generalización de las proposiciones y la expresión de propiedades que son verdaderas para todos los objetos del dominio o solo para algunos de ellos.