Programma che imita il comportamento umano

Ehi Habr!

Di recente ho superato il mio corso sugli algoritmi genetici nel programma Darwinbots e ho deciso che sarebbe stato interessante per la comunità. Inoltre, al momento la community del progetto è piuttosto piccola. Gli articoli saranno per metà traduzione di documentazione e per metà il proprio programma di ricerca.

1. Prima conoscenza

2.

Quindi, il programma Darwinbots è un simulatore di vita artificiale. Le prime versioni sono state scritte dal programmatore italiano Carlo Comis utilizzando il linguaggio di programmazione Visual Basic. L'ultima versione del programma al momento è la 2.45.02D, rilasciata il 21 agosto 2012. Al momento è in fase di sviluppo la terza versione dell'applicazione, completamente riscritta in C#. C'è anche una porta C++. Il codice sorgente del progetto è pubblicato nel sistema di controllo della versione di Subversion ed è disponibile per tutti.

Il programma imita la vita di una popolazione di organismi - robot (robot), il cui DNA viene descritto manualmente utilizzando un linguaggio appositamente progettato. Il DNA è essenzialmente una grande macchina a stati che legge le informazioni da molti input diversi, le modifica e si collega agli output delle azioni. Il codice del bot (di seguito denominato DNA) è descritto in un file di testo con estensione .txt, che consente di utilizzarlo in qualsiasi editor, compreso Blocco note. L'essenza della simulazione è eseguire il DNA per ogni ciclo, tenendo conto delle possibili interazioni di organismi, mutazioni, virus e così via.

L'elemento principale dell'interfaccia del programma Darwinbots è il mondo dei bot (o campo di simulazione). Il mondo dei bot è un grande piano non discreto (sì, lo stesso rettangolo blu che c'era prima). Per impostazione predefinita, i robot possono spostarsi nell'intera area del mondo. Le impostazioni del mondo sono impostate nelle impostazioni di simulazione.

Ogni bot è rappresentato da un cerchio di una certa dimensione e colore, con qualche motivo al centro. L '"occhio" del robot è indicato da un punto bianco. Include 9 occhi semplici. Quando un bot viene selezionato nel campo di simulazione, puoi vedere una griglia dai campi visivi di ciascun occhio. Gli occhi trasmettono al programma un valore approssimativamente corrispondente alla dimensione dell'oggetto caduto nel campo visivo.

Il bot ha un semplice sistema tattile che gli consente di rilevare una collisione o un attacco da un altro bot. Gli input sensoriali dei robot vengono analizzati nel DNA, che è scritto in un linguaggio che utilizza l'astrazione FILO ("first in, last out", basato sul principio delle lastre impilate). Il DNA della maggior parte dei robot ha da 6 a 20 procedure, chiamate geni, in cui possono essere eseguite fino a 200 operazioni. Ogni operazione può mutare.

Ogni bot ha la propria riserva di energia. La maggior parte delle azioni riduce la quantità di energia. Quando l'energia diventa zero, il bot morirà e quando salirà al di sopra del livello definito nel DNA, inizierà a moltiplicarsi. L'energia può essere reintegrata assorbendo altri robot (analogo alla caccia in un ambiente normale) e riserve di energia dal proprio "corpo". Se il bot viene selezionato come autotrofo, l'energia viene ripristinata automaticamente per un lungo periodo di tempo.

Il bot può sparare proiettili immateriali, attaccare, cercare, infettare infezioni e scambiare informazioni con altri bot. Il proiettile è un punto del campo di simulazione che non ha massa e dimensioni fisiche.

Il bot può anche comunicare con altri bot, formando una complessa struttura multicellulare, all'interno della quale i bot possono scambiare energia, operazioni e muoversi sul campo.

Quando un bot si riproduce, il suo DNA viene trasmesso alla prole, a volte con alcune modifiche che influiscono sul comportamento del bot. Come nel mondo reale, con un cambiamento nel DNA può verificarsi l'evoluzione: la prossima generazione di bot può diventare più capace di attaccare, riprodursi, evitare il contatto e così via. Tali mutazioni vengono tramandate di generazione in generazione o scompaiono. Nel tempo, codice indesiderato può accumularsi nel DNA che non fa nulla di utile. Ci vorrà più energia e renderà il DNA più carico.

Poiché il programma non decide quale organismo far crescere, le abilità del bot si manifestano a lungo termine mediante una combinazione di strategie di movimento, gestione dell'energia, riproduzione, ecc. Non ci sono restrizioni sulla complessità del codice DNA.

L'evoluzione in Darwinbots richiede molto tempo. Una generazione di robot può vivere per diverse migliaia di cicli e la maggior parte delle simulazioni viene eseguita a circa 15 cicli al secondo, quindi una selezione naturale significativa può richiedere ore o giorni.

Naturalmente, in questo articolo introduttivo, non potrei interessarti a questo progetto, ma, come esca, posso dirti che il programma ha una modalità Internet (una specie di PvP) e gli sviluppatori di bot possono prendere parte a campionati - una specie di competizione.

Nel prossimo articolo parleremo delle impostazioni di simulazione e della programmazione dei bot.

E infine, le immagini per attirare l'attenzione.

Tecnologia scientifica

Un interlocutore virtuale (chatterbot inglese) è un programma per computer progettato per simulare il comportamento del linguaggio umano durante la comunicazione con uno o più utenti. Nel 1966 Joseph Weizenbaum creò il primo programma per interlocutori, Eliza. Ha parodiato il comportamento verbale dello psicoterapeuta, vale a dire: ha implementato la tecnica di ascolto attivo chiedendo nuovamente all'utente e usando frasi come "Per favore continua".

Si presume che il programma di interlocutore ideale debba superare il Test di Turing, sviluppato già nel 1950 per determinare il successo di progetti nel campo dell'intelligenza artificiale. La sua essenza sta nel fatto che una persona corrisponde a due interlocutori, uno dei quali è una persona, l'altro è un programma per computer. Se non è possibile determinare chi è chi, si considera che il computer abbia superato il test. Tuttavia, finora nessun interlocutore virtuale è stato in grado di farlo. La funzionalità della maggior parte dei programmi moderni è limitata alla capacità di condurre una semplice conversazione.

Programmi interlocutori

Chatmaster

ChatMaster è uno dei primi buoni interlocutori virtuali di lingua russa. È un programma di autoapprendimento. La qualità del suo dialogo con una persona può essere valutata come "decente". ChatMaster conduce una conversazione sensibile al contesto, ovvero comprende il significato di una replica che si basa su quelle precedenti. Qualsiasi linguaggio non geroglifico può essere utilizzato per il dialogo (tutti europei e alcuni asiatici). Inoltre, il programma ha un'interfaccia intuitiva e un database di parole abbastanza ampio. Lo svantaggio di ChatMaster è che pensa troppo a lungo e ricorda tutto, anche ciò che non dovrebbe essere ricordato.

Cervello elettronico 1300

Electronic Brain 1300 è un piacevole programma di accompagnamento. Ha una buona base di conoscenze: abbastanza grande e con repliche originali. La nuova versione utilizza un database ad albero. Inoltre, il programma può essere facilmente insegnato nuove frasi. Lo svantaggio di Electronic Brain non è un'interfaccia user-friendly: i comandi si trovano in luoghi non proprio familiari.


Chiacchierone

Chatterbox è un buon programma per interlocutori con una buona base e un buon senso dell'umorismo. Le risposte qui vengono inviate molto rapidamente. Chatterbox non ha necessariamente bisogno di un interlocutore, può parlare da solo. Sebbene sia un programma di autoapprendimento, il suo database può essere ampliato aggiungendo file di aggiornamento. Inoltre, Chatterbox offre all'utente la possibilità di sostituire le icone con le proprie nel titolo della finestra e nella vista della barra degli strumenti.


DIALA

Questo programma conduce un dialogo con una persona in russo su qualsiasi argomento, cercando di imitare l'intelligenza artificiale. Secondo gli sviluppatori, DIALA si considera una donna ed è piuttosto critica nei confronti degli uomini e dell'umanità in generale. Per ottenere un dialogo più o meno connesso, devi inserire solo frasi a tutti gli effetti, ognuna delle quali contiene un pensiero completo. Non è consigliabile cambiare bruscamente e irragionevolmente l'argomento del dialogo. DIALA è un programma di autoapprendimento, quindi non dovrebbe dire cose stupide, altrimenti le ricorderà immediatamente e le riavrai presto. Allora sarà difficile svezzarla da questo.


Putin virtuale

Coloro che vorrebbero parlare con V.V. Putin, fategli un paio di domande o semplicemente rimproveratelo per una brutta vita, possono comunicare con il suo doppio virtuale attraverso il programma Virtual Putin. È un comodo programma di interlocutore con una bella interfaccia. Secondo gli utenti che sono già riusciti a comunicare con Putin virtuale, il programma conduce una conversazione completamente intellettuale e versatile con una persona, a volte sorprendente per la sua erudizione e il suo pensiero progressista. Inoltre, Virtual Putin può facilmente supportare qualsiasi argomento di conversazione. C'è solo un requisito: devi comunicare in russo normale e non usare parolacce. Il Putin virtuale può facilmente offendersi.

Condividi con gli amici o salva per te:

Caricamento in corso...