Inteligencia

Artificial

I

>

_

Temas

  • Introducción
    • Actividad de repaso
    • División de la IA.
      • Aprendizaje automático
        • Ejemplos
        • Actividad de aprendizaje
      • Visión por computadora
        • Ejemplos
        • Actividad de aprendizaje
      • Procesamiento de lenguaje natural
        • Ejemplos
        • Actividad de aprendizaje
      • Robótica
        • Ejemplos
        • Actividad de aprendizaje

Temas

  • División de la I.A.
    • Robotíca
      • Ejemplos
      • Actividad de aprendizaje
      • Aplicaciones de la IA
  • Historia de la I.A.
    • Actividad de aprendizaje
  • Áreas de aplicación de la I.A.
    • Actividad de aprendizaje
  • Lenguaje de programación de la I.A.
    • Actividad de aprendizaje

Introducción a la I.A.

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

  • Investiga los diferentes usos y aplicaciones que tiene la visión por computadora
  • Luego genera una tabla descriptiva donde se describa tres usos y aplicaciones

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

  • Investigue las diferentes aplicaciones, usos y utilidad que hay al procesamiento del lenguaje natural.
  • Crea una tabla descriptiva donde se refleje los usos diarios de aplicaciones que se usan.

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

  • Investiga los diferentes usos, aplicaciones y tipos de la robótica.
  • Crea una tabla descriptiva de tu análisis.

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

  • Investiga brevemente los momentos más importantes de la I.A
  • Genera una narrativa donde expliques con tus propias palabras la respuesta a ¿porqué te ha atrae/gusta/interesante ese momento de la I.A.

¡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

  • Reunirse en pares.
  • Investigar sobre los diferentes avances, aplicaciones, usos y utilidades de la I.A. en las diferentes áreas listadas.
  • Redacten 1000 palabras en donde expresen las ventajas del uso de la I.A en el área que más atención les ha interesado. No olvide indicar ¿por qué les intereso esa área?

¡Comentarios! ¿Dudas?

Lenguajes de programación de I.A.

Python

Lenguajes de programación de I.A.

R

Java

C++

Matlab

Lisp

  • Investiga al menos cuatro aplicaciones en cada lenguaje mencionado anteriormente.
  • Crea un reporte de 1500 palabras donde describas las ventajas y desventajas de las aplicaciones y del lenguaje que se uso.

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

  • Negación: se representa con el símbolo ¬ y se utiliza para expresar la negación de una proposición.
  • Conjunción: se representa con el símbolo y se utiliza para expresar la unión de dos proposiciones.
  • Disyunción: se representa con el símbolo y se utiliza para expresar la disyunción de dos proposiciones.

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:

  • Cuantificador universal (): se utiliza para expresar que una proposición es verdadera para todos los elementos de un conjunto.
  • Cuantificador existencial (): se utiliza para expresar que existe al menos un elemento en un conjunto que cumple con una determinada proposición.

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:

  • Rojo: [1, 0, 0]
  • Verde: [0, 1, 0]
  • Azul: [0, 0, 1]

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:

  • Masculino: [1, 0]
  • Femenino: [0, 1]

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.

  • Masculino: [1, 0]
  • Femenino: [0, 1]

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:

  • Electrónica: [1, 0, 0, 0]
  • Ropa: [0, 1, 0, 0]
  • Hogar: [0, 0, 1, 0]
  • Deportes: [0, 0, 0, 1]

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

  1. Investiga donde se aplique las diferentes formas en que la representación del conocimiento son aplicados.
  2. De acuerdo a lo que investigaste, responde lo siguientes:
    1. ¿usas en tu vida diaria alguna la aplicación de  representación de conocimiento de la I.A.?
      1. Menciona tres aplicaciones que utilices a diario y ¿porqué concideras que se aplica la representación de conocimiento de la I.A?
  3. Teniendo la matriz de colores:
    1. Rojo [0,1,0]
    2. Verde [1,0,0]
    3. Amarillo[0,0,1]
  4. ¿Cómo se entregaría un vector donde se indique que se quiere el color amarillo?

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

  1. Investiga la definición del problema del viajero.
  2. Determina que tipo de algoritmo de búsqueda se puede aplicar a ese problema, para solucionarlo.
  3. Genera una tabla descriptiva donde se muestre al menos tres puntos de mínimo tres algoritmos que puedan resolver el problema del agente viajero o el problema del viajero.

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.