A lo largo de las lecciones anteriores hemos hablado acerca de la dificultad de definir qué es la creatividad y para el contexto de este curso nos hemos enfocado en la propuesta de Margaret Boden, que nos dice que algo es creativo si es novedoso, sorprendente y valioso. Esta caracterización nos llevó a estudiar dos tipos de novedad, la novedad personal y la novedad histórica, así como tres tipos de procesos creativos generales causantes de sorpresa, el combinacional, el exploratorio y el transformacional. Sin embargo, esta es solo una de las teorías que intenta explicar este fenómeno tan complejo. Y, aunque esta es muy referenciada en la literatura relacionada a la creatividad computacional, no hay que perder de vista que hay muchas otras más. Dicho lo anterior, la pregunta que surge ahora es, ¿cómo podemos crear sistemas computacionales que sean capaces de construir artefactos que sean novedosos, sorprendentes y valiosos, si ya vimos que no lo podemos hacer a través de la implementación de búsquedas clásicas en el espacio de estados? Esta es una pregunta que ha resultado sumamente difícil de contestar y de hecho es en la actualidad una pregunta aún sin respuesta. Parte de la dificultad a la que nos hemos enfrentado para proponer una arquitectura general de sistemas creativos que nos permita construir tanto pintores como poetas o coreógrafos artificiales, consiste en que necesitamos identificar aquellos aspectos, por ejemplo, aquellos procesos o representaciones del conocimiento, que son generales y aquellos que son específicos del dominio. Esto nos lleva a preguntarnos, ¿es la creatividad dependiente del dominio? O en otras palabras, las personas o los procesos que son considerados creativos en un cierto dominio, por ejemplo, en la música, ¿se pueden generalizar a cualquier otra área, como por ejemplo al diseño de interiores? Esta es otra pregunta de investigación que ha resultado en un debate muy controversial y existen argumentos en favor y en contra de cada una de estas dos posiciones. Más aún, hay quienes argumentan que la creatividad tiene componentes tanto dependientes como independientes del dominio. Para el contexto de este curso tomaremos la visión que Dan Ventura presentó en el año 2017 en el artículo titulado "Cómo construir un sistema creativo". Desde su punto de vista, los agentes computacionales creativos tienen que estar situados en un dominio, principalmente por las siguientes razones. Primero, porque la gente debe de tener una base de conocimiento específica del dominio en el cual realizará sus creaciones. Por ejemplo, si queremos construir un músico artificial, entonces necesitamos proveerlo de, por lo menos, una base de conocimiento musical. De otra manera, sería imposible que pudiera generar algo que pudiéramos considerar valioso. Segundo, porque necesita contar con una forma de representar internamente sus artefactos en creación, de tal forma que le permita razonar acerca de los conceptos relacionados con el dominio y manipularlos para generar potenciales artefactos. Tercero, porque debemos de proveerle de una medida de la estética que le permita evaluar sus propias creaciones. Por ejemplo, si es un comediante artificial, necesita saber lo que es chistoso de lo que no lo es, y este conocimiento también es dependiente del dominio. Y, cuarto, porque necesita contar con la capacidad de externalizar hacia una sociedad sus artefactos que ha creado internamente, los cuales podrían potencialmente contribuir al dominio. Ya que acordamos que de alguna manera los componentes de nuestros sistemas computacionales creativos serán dependientes del dominio, ¿qué métodos de la inteligencia artificial podemos usar para que estos sean capaces de construir artefactos novedosos, sorprendentes y valiosos? Desde mi punto de vista, tenemos dos opciones muy generales. La primera consiste en utilizar cualquier método de la inteligencia artificial que conozcas o una combinación de estos. Por ejemplo, muchos han usado algoritmos de cómputo evolutivo como la base para la creación de sus sistemas, pero también es posible usar redes neuronales, cadenas de Márkov, sistemas basados en conocimiento, redes semánticas, lógica y métodos de aprendizaje máquina, entre otros. Y, la segunda opción, consiste en crear tus propios modelos computacionales basados o inspirados en alguna teoría del proceso creativo, proveniente, por ejemplo, de la psicología. En esta alternativa también es posible incluir como parte de la arquitectura del sistema algunos métodos de la inteligencia artificial, como los mencionados anteriormente.