ainulindale-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Ainulindale-devel] Staring from Norns??


From: Andrea Negro
Subject: [Ainulindale-devel] Staring from Norns??
Date: Thu, 7 Aug 2003 18:17:12 +0200

Avete mai sentito o giocato a Creatures della Mindstorm? Se no, fatevi un 
paio di ricerche su google mettendo 'norns creatures'. Io ci giocavo, un 
sacco di tempo fa, e mi sono tornati in mente. Quello che mi ha stupito 
molto e' trovare che non e' affatto morto come gioco, e ci sono 
addirittura i server online che servono a scambiarsi i norns. 
Probabilmente e' l'esempio piu' riuscito di intelligenza artificiale fatta 
a gioco che ci sia.
Io proporrei di riprendere lo schema di questi norn e vedere se riusciamo 
a estenderlo e generalizzarlo per applicarlo come struttura dati di base 
per le creature viventi dei giochi. In particolare c'e' una bella review 
sul funzionamento dei norn in
http://www.ias.uwe.ac.uk/~a-adamat/creatures.htm
Dove spiega tra l'altro come io farei il 'cervello' degli esseri viventi. 
Mastro Derfel trovera' una forma informatica adatta. :)

Io vedrei una struttura che definisce le caratteristiche fisiche, e dato 
che deve essere comune a tutti gli essere viventi, io la vedrei in termini 
estremamente generali. Notare che quando scrivo 'organi interni' non 
intendo definirne la posizione o la forma: le caratteristiche 'fisiche' 
dovrebbero essere dentro la mesh. Per come me la sto immaginando, 
l'anatomia sta dentro le informazioni di mesh, mentre in quelle che io 
chiamo scheletro, etc ci vedo la fisiologia. Tuttavia, non ho nessuna idea 
precisa al riguardo, la metto tanto perche' ci si cominci a pensare, 
magari in un thread apposta.

* struct morphology
        -> scheletro
        -> muscolatura
        -> organi interni
        -> mesh
        -> ...

Sicuramente la parte di sistema nervoso e' fondamentale. Riscrivo il 
modello dei norn, in cui tutti questi lobi sono distinti e compongono il 
cervello. All'arrivo di uno stimolo, si innesca una serie di reazioni che 
passano da un lobo all'altro. Detto pragmaticamente, io mi immagino i 
campi come puntatori a funzioni, che ricevono un input e generano un 
output. Alcune lobi interagiscono con l'esterno, come il perception che 
riceve gli stimoli esterni, altri lavorano solo su reazione, come il 
decision_lobe, altri ancora ricevono gli input e agiscono di conseguenza 
come il drive_lobe. Ad esempio, se una creatura ha lo stimolo della fame 
vuol dire che il general_sense_lobe ha deciso che e' ora di fare la pappa 
(probabilmente avra' tra i parametri di input i valori dello stato del 
sistema digestivo). Il general_sense_lobe, in risposta alla fame, 
attivera' l'attention_lobe, che si preoocupera' di dare priorita' alla 
questione pappa, dando le relative indicazioni al perception_lobe. Quando 
questo vede da magna', avvisa il decision_lobe che decidera' se andare a 
prendere la pappa o no, e nel caso attivera' il drive_lobe chiedendo di 
andare dalla pappa.
Ora, potrebbe sembrare complicato. In effetti e' complicato. :) Pero' le 
vedo semplicemente come 'funzioni' che hanno una complessita' piu' o meno 
elevata a seconda della specie. Possiamo cosi' sviluppare dei sistemi di 
base, e col tempo affinarli e creare modelli piu' complessi che pero' 
abbiano interfacce e dati standard in modo da poter switchare le funzioni 
(mettendone una versione modificata o migliorata) a seconda del caso. 
Altri parametri in ingresso di queste funzioni saranno i dati provenienti 
dal ddna, che influiranno sul carattere e cose del genere. Oltre a questi, 
il cui significato non mi e' chiaro per tutti, io metterei anche un 
memory_lobe e forse qualcos'altro che non ho ancora focalizzato.

* struct nervous_system
        -> perception_lobe
        -> drive_lobe
        -> stimulation_sources_lobe
        -> verb_lobe
        -> noun_lobe
        -> general_sense_lobe
        -> decision_lobe
        -> attention_lobe
        -> concept_lobe
        -> regular_lobe
        -> ...

Cosa piu' importante, ci vuole un dna, per dare varieta' alle cose e per 
implementare l'ereditarieta'. Credo che nei norn ci sia una struttura di 
dna particolare, e se non vado errato ogni norn ha circa 800 geni diversi. 
Purtroppo non c'e' il codice di sta roba, quindi vado a senso. Io vedrei 
una bellissima struttura che richiami il dna umano. Lo chiamerei ddna, 
digital-dna. In pratica, invece che avere le 4 basi del dna normale, 
userei un sistema ovviamente binario. Per ogni gene si definisce una 
coppia di bit, 0 e' recessivo, 1 dominante. La coppia di basi ovviamente 
ha un senso a seconda della posizione in cui sono messi, come nel dna. Per 
implementare l'ereditarieta' e' sufficiente ricombinare i caratteri dei 
due genitori, esattamente come nella realta'. In questo, ovviamente, la 
parte difficile e' 1) codificare i geni e 2) interpretarli attraverso le 
funzioni in modo che il risultato sia dipendente dal genoma. Ovviamente, 
queste funzioni le vedo anche 'offerte' sulla griglia come servizi, 
attraverso cui poter condividere le proprie creazione e a cui poter 
attingere per crearne di nuovi.

Avro' molto da pensare... se avete idee, fatevi avanti!

Kind Regards,
Andrea Negro

-- 
Linux & Grid FTSS
IBM South Region





reply via email to

[Prev in Thread] Current Thread [Next in Thread]