Computer program that mimics human behavior

Hey Habr!

I recently passed my coursework on genetic algorithms in the Darwinbots program and decided that it would be interesting for the community. Moreover, at the moment the project community is quite small. Articles will be half translation of documentation and half their own research program.

1. First acquaintance

2.

So, the Darwinbots program is an artificial life simulator. The first versions were written by the Italian programmer Carlo Comis using the Visual Basic programming language. The latest version of the program at the moment is 2.45.02D, released on August 21, 2012. At the moment, the third version of the application is being developed, completely rewritten in C#. There is also a C++ port. The source code of the project is published in the Subversion version control system and is available to everyone.

The program imitates the life of a population of organisms - bots (robots), whose DNA is described manually using a specially designed language. DNA is essentially a large state machine that reads information from many different inputs, modifies it, and connects to action outputs. The bot code (hereinafter referred to as DNA) is described in a text file with the .txt extension, which allows you to work with it in any editor, including Notepad. The essence of the simulation is to perform DNA for each cycle, taking into account the possible interactions of organisms, mutations, viruses, and so on.

The main element of the interface of the Darwinbots program is the bot world (or simulation field). The world of bots is a large non-discrete plane (yes, the same blue rectangle that was before). By default, bots can move around the entire area of ​​the world. The world settings are set in the simulation settings.

Each bot is represented by a circle of a certain size and color, with some pattern in the center. The "eye" of the bot is indicated by a white dot. It includes 9 simple eyes. When a bot is selected on the simulation field, you can see a grid from the fields of view of each eye. The eyes transmit to the program a value approximately corresponding to the size of the object that has fallen into the field of view.

The bot has a simple haptics system that allows it to sense a collision or attack from another bot. The bots' sensory inputs are analyzed in DNA, which is written in a language using the FILO abstraction ("first in, last out", based on the principle of stacked plates). The DNA of most bots has 6 to 20 procedures, called genes, in which up to 200 operations can be performed. Each operation can mutate.

Each bot has its own energy reserve. Most actions reduce the amount of energy. When the energy becomes zero, the bot will die, and when it rises above the level defined in the DNA, it will begin to multiply. Energy can be replenished by absorbing other bots (analogous to hunting in a normal environment) and energy reserves from one's "body". If the bot is selected as an autotroph, then the energy is replenished automatically over a long time.

The bot can fire intangible projectiles, attack, scavenge, infect infections, and exchange information with other bots. The projectile is a point on the simulation field that has no mass and physical dimensions.

The bot can also communicate with other bots, forming a complex multicellular structure, within which the bots can exchange energy, operations, and move around the field.

When a bot reproduces, its DNA is passed on to the offspring, sometimes with some changes that affect the bot's behavior. As in the real world, with a change in DNA, evolution can occur - the next generation of bots can become more capable of attacking, reproducing, avoiding contact, and so on. Such mutations are either passed down from generation to generation or disappear. Over time, unwanted code can accumulate in DNA that does nothing useful. It will take more energy and make DNA more loaded.

Since the program does not decide which organism to grow, the bot's abilities are manifested in the long term by a combination of movement strategies, energy management, reproduction, etc. There are no restrictions on the complexity of the DNA code.

Evolution in Darwinbots takes quite a long time. A generation of bots can live for several thousand cycles, and most simulations run at about 15 cycles per second, so significant natural selection can take hours to days.

Of course, in this introductory article, I could hardly interest you in this project, but, as a bait, I can tell you that the program has an Internet mode (some kind of PvP), and bot developers can take part in leagues - a kind of competition.

In the next article, we will talk about simulation settings and bot programming.

And finally, pictures to attract attention.

Science, Technology

A virtual interlocutor (English chatterbot) is a computer program that is designed to simulate human speech behavior when communicating with one or more users. In 1966, Joseph Weizenbaum created the first interlocutor program, Eliza. She parodied the psychotherapist's verbal behavior, namely: she implemented the active listening technique by asking the user again and using phrases like "Please continue."

It is assumed that the ideal interlocutor program must pass the Turing Test, developed back in 1950 to determine the success of projects in the field of artificial intelligence. Its essence lies in the fact that a person corresponds with two interlocutors, one of which is a person, the other is a computer program. If it is not possible to determine who is who, the computer is considered to have passed the test. However, so far not a single virtual interlocutor has been able to do this. The functionality of most modern programs is limited to the ability to conduct a simple conversation.

Interlocutor programs

Chatmaster

ChatMaster is one of the first good Russian-speaking virtual interlocutors. It is a self-learning program. The quality of her dialogue with a person can be assessed as "decent". ChatMaster conducts a context-sensitive conversation, that is, it understands the meaning of a replica that relies on the previous ones. Any non-hieroglyphic language can be used for dialogue (all European and some Asian). In addition, the program has a user-friendly interface and a fairly large database of words. The disadvantage of ChatMaster is that it thinks for too long and remembers everything, even what should not be remembered.

Electronic Brain 1300

Electronic Brain 1300 is a pleasant companion program. Has a good knowledge base: large enough and with original replicas. The new version uses a tree-like database. In addition, the program can be easily taught new phrases. The disadvantage of Electronic Brain is not a user-friendly interface: the controls are located in not quite familiar places.


Chatterbox

Chatterbox is a good interlocutor program with a good base and a good sense of humor. Replies here are issued very quickly. Chatterbox does not necessarily need an interlocutor, he can talk to himself. Although it is a self-learning program, its database can be expanded by adding update files. In addition, Chatterbox provides the user with the ability to replace icons with their own in the window title and toolbar view.


DIALA

This program conducts a dialogue with a person in Russian on any topic, while trying to imitate artificial intelligence. According to the developers, DIALA considers herself a woman and is quite critical of men and humanity in general. In order to get a more or less connected dialogue, you need to enter only full-fledged phrases, each of which contains a complete thought. It is not recommended to abruptly and unreasonably change the topic of the dialogue. DIALA is a self-learning program, so it shouldn't say any stupid things, otherwise it will immediately remember them and you will get them back soon. Then it will be difficult to wean her from this.


Virtual Putin

Those who would like to speak with V.V. Putin, ask him a couple of questions or just scold him for a bad life, they can communicate with his virtual double through the Virtual Putin program. It is a convenient interlocutor program with a nice interface. According to users who have already managed to communicate with virtual Putin, the program conducts a completely intellectual and versatile conversation with a person, sometimes surprising with its erudition and progressive thinking. In addition, Virtual Putin can easily support any topic of conversation. There is only one requirement - you need to communicate in normal Russian and not use profanity. Virtual Putin can easily take offense.

Share with friends or save for yourself:

Loading...