Menu Close

Etiqueta: IA

Reseña: Inteligencia artificial avanzada

En la colección de textos de la UOC (Universitat Oberta de Catalunya) se ha publicado el libro Inteligencia artificial avanzada.

Sus autores son Raúl Benítez, Gerard Escudero y Samir Kanaan.

El libro está organizado de la forma siguiente: los métodos de búsqueda y optimización se describen en el apartado 2, donde se detallarán las técnicas de extracción de información de bases de datos que contengan información semántica, como por ejemplo web de noticias o las conversaciones entre diversos miembros de una red social.

Las técnicas de caracterización de datos se estudiarán en el apartado 3, describiendo las técnicas principales basadas en descomposición de los datos en modos principales. En el apartado 3 también se estudiarán las técnicas de extracción de características y un método de visualización de datos multidimensionales.

Los algoritmos de clasificación de datos se presentan en el apartado 4, en el que se estudiarán los principales métodos de clasificación y reconocimiento de patrones.

En el apartado 5 se explican algunas técnicas avanzadas de inteligencia evolutiva, algoritmos que utilizan reglas heurísticas inspiradas en el funcionamiento evolutivo de los sistemas biológicos.

El código del texto está escrito en Python. Una introducción a Python se encuentra en otro texto de la UOC: El lenguaje Python escrito por David Masip Rodó– El objetivo del texto es ayudar a comprender los ejemplos que se exponen en el libro de inteligencia artificial.

Ambos libros son la base de la asignatura Intel·ligència artificial avançada impartida por David Masip Rodó en el Màster en Enginyeria Informàtica de la UOC.

Reseña: “An intelligent tutoring system for teaching FOL equivalence”

Se ha publicado un artículo sobre enseñanza de la lógica titulado An intelligent tutoring system for teaching FOL equivalence.

Sus autores son Foteini Grivokostopoulou, Isidoros Perikos, Ioannis Hatzilygeroudis (de la Universidad de patras en Grecia).

El trabajo se ha presentado hoy en el AIEDCS 2013 (The First Workshop on AI-supported Education for Computer Science).

Su resumen es

In this paper, we present an intelligent tutoring system developed to assist students in learning logic. The system helps students to learn how to construct equivalent formulas in first order logic (FOL), a basic knowledge representation language. Manipulating logic formulas is a cognitively complex and error prone task for the students to deeply understand. The system assists stu- dents to learn to manipulate and create logically equivalent formulas in a step-based process. During the process the system provides guidance and feedback of various types in an intelligent way based on user’s behavior. Evaluation of the system has shown quite satisfactory results as far as its usability and learning capabilities are concerned.

Reseña: AI over large formal knowledge bases: The first decade

Se ha publicado un artículo sobre aplicaciones de la inteligencia artificial a la demostración automática de teoremas titulado AI over large formal knowledge bases: The first decade.

Su autor es Josef Urban (de la Univ. de Nimega, Países Bajos) y lo presentará mañana en el ARW2013 (20th Automated Reasoning Workshop).

Su resumen es

In March 2003, the first version of the Mizar Problems for Theorem Proving (MpTP) was released. In the past ten years, such large formal knowledge bases have started to provide an interesting playground for combining deductive and inductive AI methods. The talk will discuss three related areas of application in which machine learning and general AI have been recently experimented with: (i) premise selection for theorem proving over large formal libraries built with systems like Mizar, HOL Light, and Isabelle (ii) advising and tuning first-order automated theorem provers such as E and leanCoP, and (iii) building larger inductive/deductive AI systems such as MaLARea. Here I focus on the wider motivation for this work.

Reseña: Knowledge representation, reasoning, and the design of intelligent agents

Se ha publicado un libro sobre representación del conocimiento y razonamiento titulado Knowledge representation, reasoning, and the design of intelligent agents.

Sus autores son Michael Gelfond y Yulia Kahl.

Su resumen es

This is a book about knowledge representation and reasoning (KRR) – a comparatively new branch of science which serves as the foundation of Artificial Intelligence, Declarative Programming, and the design of knowledge – intensive software systems. Our main goal is to show how a a software system can be given knowledge about the world and itself, and how this knowledge can be used to solve non-trivial computational problems. There are several approaches to KRR which both compete and complement each other. The approaches differ primarily by the languages used to represent the knowledge and by corresponding computational methods. This book is based on a knowledge representation language called Answer Set Prolog (ASP) and the answer set programming paradigm – a comparatively recent branch of KRR with a well-developed theory, efficient reasoning systems, methodology of use, and a growing number of applications.

The text can be used for classes in Knowledge Representation, Declarative Programming, and Artificial Intelligence for advanced undergraduate or graduate students in computer science and related disciplines including software engineering, logic, cognitive science, etc. It will also be useful to serious researchers in these fields who would like to learn more about the answer sets programming paradigm and its use in KRR. Finally, we hope it will be of interest to anyone with a sense of wonder about the amazing ability of humans to derive volumes of knowledge from a collection of basic facts. Knowledge representation and reasoning, located at the intersection of mathematics, science and the humanities, provides us with mathematical and computational models of human thought and gives some clues to the understanding of this ability. The reader is not required to know logic or to have previous experience with computational systems. However, some understanding of mathematical method of thinking will be of substantial help.

We have attempted to maintain a proper balance between mathematical analysis of the subject and practical design of intelligent agents — software systems capable of using knowledge about their environment to perform intelligent tasks. Beginning with simple question-answering agents, we progress to more and more complex ones and explain how common problems of knowledge representation and reasoning such as commonsense (default) reasoning, planning, diagnostics and probabilistic reasoning are solved with ASP and its extensions. The precise mathematical definitions of basic concepts are always accompanied by informal discussions and by examples of their use for modeling various computational tasks performed by humans. Readers are encouraged to run programs to test their agent’s ability to perform these tasks using available, state-of-the-art ASP reasoning systems.

Of course the worth of a particular KRR theory is tested by the ability of software agents built on the basis of this theory to behave intelligently. If, given a certain amount of knowledge, the agent exhibits behavior that we believe reasonable for a human with exactly the same knowledge, we deem the theory to be a step in the right direction.

We hope that serious readers will learn to appreciate the interplay between mathematical modeling of a phenomenon and system design and better understand the view of programming as refinement of specifications. Even though the book does not contain large practical projects, we believe that the skills learned will be of substantial use in the marketplace.

We meant for this book to be a foundation for those interested in KRR. Our desire to limit the material to one semester forced us to skip many topics closely related to our approach. This includes various constraint and abductive logic programming languages and algorithms, descriptions of important ASP reasoning methods, the methodology of transforming ASP programs to improve their efficiency, and a large body of useful mathematical knowledge. The book does not cover other important KR topics such as descriptive logics and their use for the Semantic Web and other applications, natural language processing, etc. To help those interested in building on the foundation presented and learning more about these other topics, we have included a section on references and further reading in each chapter.”

Los principios del programador

Hace unos días se ha publicado en Conocimiento Libre (o lo que está detrás del Software Libre) el artículo Los principios del programador, escrito en inglés por Daniel Read y traducido al castellano por Juan A. Romero.

En el artículo se comentan los siguientes principios de la programación:

  1. El principio del carácter personal que establece: escribir el código de forma que refleje, y saque a relucir, solo lo mejor del carácter personal del programador.
  2. El principio de la estética que establece: Esforzarse por conseguir la belleza y la elegancia en cada aspecto del trabajo.
  3. El principio de la claridad que establece: Darle el mismo valor a la claridad que a la corrección. Utilizar activamente técnicas que mejoran la claridad del código. La corrección vendrá casi por sí sola.
  4. El principio de la distribución que establece: Usar la distribución visual del código para comunicar la estructura del código a un lector humano.
  5. El principio de lo explícito que establece: Intentar siempre favorecer lo explícito sobre lo implícito.
  6. El principio de código auto-documentado que establece: La documentación más fiable para el software es el propio código. En muchos casos, el propio código es la única documentación. Por lo tanto, hay que esforzarse en hacer que el código sea auto-documentado, y allí donde no sea posible, añadir comentarios.
  7. El principio de los comentarios que establece: Comentar mediante frases completas para resumir y comunicar la intención.
  8. El principio de las suposiciones que establece: Dar los pasos que sean razonables para comprobar, documentar y prestar atención a las suposiciones hechas en cada módulo y rutina.
  9. El principio de la interfaz con el usuario que establece: No hacer nunca que el usuario se sienta estúpido.
  10. El principio de volver atrás que establece: El momento de escribir buen código es justamente el preciso momento en el que se está escribiendo.
  11. El principio de el tiempo y el dinero de otros que establece: Un verdadero profesional no gasta el tiempo ni el dinero de otras personas produciendo software que no esté razonablemente libre de fallos; que no esté mínimamente probado; que no cumpla con los requisitos establecidos; que esté falsamente adornado con características innecesarias; o que tenga un aspecto deplorable.

El artículo desarrolla los anteriores principios junto con consejos sobre la escritura de programas informáticos.

Más novedades de la Competición de IA de Google 2010

Como comenté en la entrada en la que anunciaba la Competición de IA de Google 2010, estaba previsto posibilitar la programación del juego en Haskell, Common Lip.

En la entrada anterior anuncié el soporte del juego en Haskell

En Common Lisp Starter Package se ha publicado el soporte del juego en Common Lisp.

Como la competición se celebrará del 10 de Septiembre al 27 de Noviembre, pienso que puede ser un reto que se le plantee a los alumnos de la asignatura de Inteligencia Artificial el primer día de clase. Incluso se puede fomentar la participación puntuando los resultados obtenidos en la competición.

Competición de IA de Google 2010

Se ha anunciado la Google AI Challenge del 2010. Este año el objetivo es crear un programa para el juego de la Guerra de los Planetas que juege tan inteligentemente como sea posible.

El juego de la guerra de los planetas es un juego de estrategia inspirado en el Galcon.

Se puede participar en la competición programando la estrategia del juego en distintos lenguajes de programación a los que en breve se añadirán Haskell y Common Lisp.

Esta competición puede utilizarse en distintas asignaturas que impartimos:

Competición de IA de Google

La Google AI Challenge de este año es sobre un juego con dos jugadores, el Tron, que es parecido al Snake.

Se puede participar en la competición programando la estrategia del juego en distintos lenguajes de programación, entre los que se encuentran Haskell y Common Lisp.

Esta competición puede utilizarse en distintas asignaturas que impartimos: