Marcus, Yates, Russel e incluso Marcas tienen respuestas maravillosas. Los estoy votando a todos. Personalmente, creo que están en la marca. La creatividad, con la tecnología actual, podría simularse como un proceso estocástico controlado.
Matemáticamente, el primer paso para simular la creatividad sería mirar un generador de números pseudoaleatorios bueno y hermoso. Digo belleza , porque hay algo mágico en los generadores congruentes lineales y también porque su débil capacidad para simular aleatoriedad es en este caso un activo importante. Los LCG son deterministas y dependen completamente del valor inicial de la semilla. Pero la creatividad tampoco es completamente aleatoria y también depende de las circunstancias iniciales.
Marcus, Yates y Russel tocan otro aspecto fundamental de la creatividad. La idea de que funciona en conjuntos y las asociaciones entre elementos de estos conjuntos . Donde hay una asociación, existe la posibilidad de un elemento completamente nuevo. Por ejemplo, el conjunto de colores y el conjunto de animales, podría dar como resultado una jirafa completamente negra. Uno o más conjuntos serían los conjuntos de pivote . Estos son conjuntos que determinan la entidad de salida. Por ejemplo, si quiero limitar mi creatividad a la pintura de una casa rural, los conjuntos de pivote podrían ser elementos de paisaje , formatos de cielo , casas rurales . Quisiera uno o más elementos de estos conjuntos en mi pintura. Todos los demás conjuntos serían conjuntos asociativos . Los elementos de estos conjuntos pueden seleccionarse o no, dependiendo de si sus elementos tienen asociaciones con los conjuntos dinámicos. Entonces, mi algoritmo de creatividad de pintura de casas rurales podría dar como resultado la inclusión de un árbol del conjunto de plantas y árboles , pero terminaría sin incluir nada del conjunto de flores .
Por lo tanto, un algoritmo muy básico funcionaría al ingresar conjuntos de pivote, generar números pseudoaleatorios para elegir elementos de esos conjuntos y combinar esos elementos en un nuevo conjunto de salida. El PRNG entonces ejecutaría un número indeterminado de pruebas de asociación con otros conjuntos y decidiría si incluir o no elementos de esos conjuntos asociativos.
Veamos esto en la práctica.
semilla = número elegido
ps [] = lista de conjuntos de pivotes
os [] = conjunto de salida vacío
PRNG (semilla) // inicializa PRNG
para i = ps [0] a ps [max] {// para cada conjunto de pivote
si ps [i] es único // elige solo 1 elemento si set está marcado como singular
num_e = 1
más
num_e = PRNG () // número de elementos para elegir del conjunto
terminara si
para z = 1 a num_e {
os [] + = ps [i] [z] // agregar elemento al conjunto de salida
}
}
Lo anterior crea un conjunto de salida con elementos de los conjuntos dinámicos elegidos de forma semialeatoria. Como dije, este es un algoritmo muy básico. Pero podría ser la base de un algoritmo más sofisticado en el que los elementos pivote se seleccionan en base a algoritmos de toma de decisiones más robustos. Los algoritmos genéticos vienen a la mente como un árbol de decisión potencial más valioso que la fuente PRNG () anterior.
Ahora llegamos a la parte difícil. La creatividad es un proceso de múltiples capas. La pintura de mi casa rural podría mostrar a un caza a reacción cruzando los cielos como una visión creativa del artista sobre el combate entre el hombre natural y el hombre moderno. Por lo tanto, necesitamos traer verdadera creatividad mediante la implementación de conjuntos asociativos.
seed = otro número elegido // volvemos a sembrar el prng para esta tarea
PRNG (semilla) // reiniciar PRNG con nueva semilla
para cada elemento en os [] {
assoc_strength = PRNG () // fuerza de asociación mínima
number_assoc = PRNG () // número de asociaciones para probar
para i = 1 a number_assoc {
assoc_id = PRNG () // genera una identificación de asociación aleatoria
si el elemento tiene assoc_id y assoc_id.strength> assoc_strength
os [] + = assoc_id. elemento // agrega elemento asociativo, si cumple con los criterios
}
Aquí solo estamos entreteniendo nuestros pensamientos, pero lo anterior podría ser la base para resolver las asociaciones en el proceso creativo. Para cada elemento pivote en el conjunto de salida, definimos la fuerza de asociación. Un número alto hace que sea más fácil que ocurran asociaciones y un número bajo más difícil. Arriba elegí este número al azar para indicar que esta es otra variable que requiere procesos estocásticos más sofisticados, como un algoritmo de red neuronal, por ejemplo.
Luego decidimos el número de asociaciones a crear. Luego creamos tantas asociaciones aleatorias. En el pseudocódigo anterior, genero identificadores y busco en el elemento pivote si ese identificador existe. Si no existe, descarto la asociación, por lo que podría decir que este algoritmo es minimalista. Por defecto no hay asociaciones. Es un algoritmo de realismo. Mientras que un algoritmo del Romanticismo tendría que predeterminar muchas asociaciones. Y un algoritmo de Jackson Pollock simplemente se volvería loco.
También probamos la fuerza de asociación. Cada asociación entre elementos de diferentes conjuntos tiene un valor de fuerza que significa qué tan bien se relacionan ambos elementos entre sí. Un elemento de caza a reacción tiene una fuerte asociación con un elemento de nube. Imaginemos que el elemento de la nube es parte de mi conjunto de salida. Entonces, si se me ocurre una identificación de asociación para la nube que apunta al avión a reacción, hay muchas posibilidades de que el avión se agregue a la pintura. Dependerá del valor de la fuerza de asociación mínima permitida (la variable assoc_strength).
Conclusión:
Lo anterior es una simulación . Es importante distinguirlo de una emulación , que es una imitación más fuerte de la realidad. Es simplemente un algoritmo simplista e ingenuo para simular la creatividad.
Sobre todo, define un proceso más de lo que define el método . El método real haría que reemplazáramos todas las instancias por PRNG () con algoritmos de IA más sofisticados como Redes Neuronales y Algoritmos Genéticos para ayudar a los procesos de toma de decisiones involucrados y expandir las ideas aquí presentadas. Pero espero que haya ayudado a satisfacer tu curiosidad.