[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Ainulindale-devel] Staring from Norns??,
Andrea Negro <=