Internet Windows Android

Joc pe computer care simulează comportamentul uman 3 litere. Boți de majordom sau roboți de concierge

Bună, Habr!

Am finalizat recent un curs despre algoritmi genetici în programul Darwinbots și am decis că ar fi interesant pentru comunitate. Mai mult, în acest moment comunitatea de proiect este destul de mică. Articolele vor fi jumătate traduceri ale documentației și jumătate proprii cercetări în program.

1. Prima cunostinta

2.

Deci, programul Darwinbots este un simulator de viață artificial. Primele versiuni au fost scrise de programatorul italian Carlo Comis folosind limbajul de programare Visual Basic. Cea mai recentă versiune a programului în acest moment este 2.45.02D, lansată pe 21 august 2012. În prezent, se dezvoltă a treia versiune a aplicației, rescrisă complet în C#. Există, de asemenea, un port în C++. Codul sursă al proiectului este publicat în sistemul de control al versiunilor Subversion și este disponibil pentru toată lumea.

Programul simulează viața unei populații de organisme - roboți (roboți), al căror ADN este descris manual folosind un limbaj special dezvoltat. ADN-ul este în esență o mașină de stat mare care citește informații de la multe intrări diferite, o modifică și o conectează la ieșiri acționabile. Codul bot (denumit în continuare ADN) este descris într-un fișier text cu extensia .txt, care vă permite să lucrați cu el în orice editor, inclusiv Notepad. Esența simulării este de a efectua ADN pentru fiecare ciclu, ținând cont de posibilele interacțiuni ale organismelor, mutații, viruși și așa mai departe.

Elementul principal al interfeței programului Darwinbots este lumea botului (sau câmpul de simulare). Lumea roboților este un plan mare non-discret (da, același dreptunghi albastru care era mai devreme). În mod implicit, boții se pot deplasa în întreaga zonă a lumii. Setările pentru lume sunt setate în setările de simulare.

Fiecare bot este reprezentat de un cerc de o anumită dimensiune și culoare, cu un model în centru. „Ochiul” botului este indicat de un punct alb. Include 9 ochi simpli. Când selectați un bot pe câmpul de simulare, puteți vedea o grilă a câmpurilor vizuale ale fiecărui ochi. Ochii transmit programului o valoare aproximativ corespunzătoare mărimii obiectului din câmpul vizual.

Botul are un sistem de senzații tactile simple care îi permite să simtă o coliziune sau un atac din partea unui alt bot. Intrările senzoriale ale roboților sunt analizate în ADN, care este scris într-un limbaj folosind abstracția FILO (first in, last out), bazată pe principiul plăcilor stivuite. ADN-ul majorității roboților are între 6 și 20 de proceduri numite gene, care pot efectua până la 200 de operații. Fiecare operațiune poate muta.

Fiecare bot are propria sa rezervă de energie. Majoritatea acțiunilor reduc cantitatea de energie. Când energia ajunge la zero, botul va muri, iar când se ridică peste nivelul determinat în ADN, va începe să se reproducă. Energia poate fi completată prin absorbția altor roboți (analog cu vânătoarea într-un mediu normal) și prin stocarea energiei din propriul „corp”. Dacă botul este selectat ca autotrof, atunci energia este completată automat pe o perioadă lungă de timp.

Botul poate trage proiectile intangibile, poate ataca, recupera gunoiul, se poate infecta și poate face schimb de informații cu alți roboți. Un proiectil este un punct de pe câmpul de modelare care nu are masă sau dimensiuni fizice.

Botul poate comunica, de asemenea, cu alți roboți, formând o structură multicelulară complexă în cadrul căreia roboții pot face schimb de energie, operațiuni și se pot deplasa pe teren.

Când un bot se reproduce, ADN-ul său este transmis descendenților săi, uneori cu unele modificări care afectează comportamentul botului. Ca și în lumea reală, evoluția poate avea loc cu o schimbare a ADN-ului - următoarea generație de roboți poate deveni mai capabilă să atace, să se reproducă, să evite contactul și așa mai departe. Astfel de mutații fie sunt transmise din generație în generație, fie dispar. De-a lungul timpului, ADN-ul poate acumula cod nedorit care nu face nimic util. Va consuma mai multă energie și va face ADN-ul mai ocupat.

Deoarece programul nu decide ce organism să crească, abilitățile botului se manifestă pe termen lung printr-o combinație de strategii de mișcare, management al energiei, reproducere etc. Nu există restricții privind complexitatea codului ADN.

Evoluția în Darwinbots durează destul de mult. O generație de roboți poate trăi câteva mii de cicluri, iar majoritatea simulărilor rulează cu aproximativ 15 cicluri pe secundă, deci poate dura ore până la zile până să apară selecția naturală semnificativă.

Desigur, în acest articol introductiv cu greu v-aș putea interesa acest proiect, dar ca momeală vă pot spune că programul are un mod de Internet (un fel de PvP), iar dezvoltatorii de bot pot participa la ligi - un fel de competiție.

În articolul următor vom vorbi despre setările de simulare și despre programarea botului.

Și în sfârșit, poze care să atragă atenția.

Stiinta tehnologiei

Un interlocutor virtual (ing. chatterbot) este un program de calculator care este creat pentru a imita comportamentul vorbirii umane atunci când comunică cu unul sau mai mulți utilizatori. În 1966, Joseph Weizenbaum a creat primul program de conversație, Eliza. Ea a parodiat comportamentul de vorbire al unui psihoterapeut, și anume: a implementat tehnica ascultării active, întrebând din nou utilizatorul și folosind expresii precum „Vă rugăm să continuați”.

Se așteaptă ca un program de interlocutor ideal să treacă testul Turing, dezvoltat în 1950 pentru a determina succesul proiectelor de inteligență artificială. Esența sa constă în faptul că o persoană corespunde cu doi interlocutori, dintre care unul este o persoană, celălalt este un program de calculator. Dacă nu este posibil să se determine cine este cine, se consideră că computerul a trecut testul. Cu toate acestea, niciun interlocutor virtual nu a reușit încă să facă acest lucru. Funcționalitatea majorității programelor moderne este limitată la capacitatea de a conduce o conversație simplă.

Programe pentru interlocutori

Chatmaster

ChatMaster este unul dintre primii interlocutori virtuali buni vorbitori de rusă. Este un program de auto-învățare. Calitatea dialogului ei cu o persoană poate fi evaluată drept „decentă”. ChatMaster conduce o conversație sensibilă la context, adică înțelege semnificația unei replici care se bazează pe cele anterioare. Orice limbă non-hieroglifă (toate europene și unele asiatice) poate fi folosită pentru dialog. În plus, programul are o interfață ușor de utilizat și o bază de date destul de mare de cuvinte. Dezavantajul ChatMaster este că durează prea mult să te gândești și să-ți amintești totul, chiar și lucruri care nu ar trebui să fie amintite.

Electronic Brain 1300

Electronic Brain 1300 este un program conversațional plăcut. Are o bază de cunoștințe bună: destul de mare și cu replici originale. Noua versiune folosește o bază de date bazată pe arbore. În plus, programul poate fi predat cu ușurință expresii noi. Dezavantajul Electronic Brain este că interfața nu este ușor de utilizat: elementele de control sunt amplasate în locuri neobișnuite.


Vorbăreţ

Chatterbox este un program bun pentru interlocutori, cu o bază bună și un bun simț al umorului. Răspunsurile aici sunt date foarte repede. Un chatterbox nu are neapărat nevoie de un interlocutor care poate vorbi singur. Deși este un program de auto-învățare, baza sa de date poate fi extinsă prin adăugarea de fișiere de actualizare. În plus, Chatterbox oferă utilizatorului posibilitatea de a înlocui pictogramele cu propriile lor în bara de titlu a ferestrei și în vizualizarea barei de instrumente.


DIALA

Acest program conduce un dialog cu o persoană în limba rusă pe orice subiect, încercând să imite inteligența artificială. Potrivit dezvoltatorilor, DIALA se consideră femeie și este destul de critică cu bărbații și cu umanitatea în general. Pentru a avea un dialog mai mult sau mai puțin conectat, trebuie să introduceți doar fraze cu drepturi depline, fiecare dintre ele conține un gând complet. Nu se recomandă schimbarea bruscă și nerezonabilă a subiectului dialogului. DIALA este un program de auto-învățare, așa că nu ar trebui să-i spui nimic prostesc, altfel își va aminti imediat de ele și le vei primi înapoi în curând. Atunci va fi dificil s-o înțărc de asta.


Putin virtual

Cei care ar dori să discute cu V.V. Putin, puneți-i câteva întrebări sau pur și simplu certați-l pentru viața lui proastă, ei pot comunica cu dublul său virtual prin programul „Virtual Putin”. Este un program de interlocutor convenabil, cu o interfață plăcută. Potrivit utilizatorilor care au reușit deja să comunice cu virtualul Putin, programul conduce o conversație complet inteligentă și versatilă cu o persoană, uneori surprinzătoare prin erudiția și gândirea sa progresivă. În plus, Virtual Putin poate sprijini cu ușurință orice subiect de conversație. Există o singură cerință - trebuie să comunicați în limba rusă normală și să nu folosiți blasfemia. Putin virtual se poate jignit cu ușurință.