Walter O. Krawec


Quantum Decision Maker

Download Quantum Behavioral Language (Source and Windows Binaries; includes Q-Prog): (ZIP) 901KB.

Download Quantum Flocking Program (includes QBL and Q-Prog): (ZIP) 177KB.

QBL has been tested on Windows 7, Mac OS X, and Linux (it even works on the Raspberry Pi (Model B).

Note that the sample programs require Simple Robot Simulator 2010. You may use your own simulator, however this may require building a QBL module.

Here are some videos (older videos listed first) of various experiments (note that the "jumps" every 30 seconds are due to the fact that I can only record 30 seconds at a time with the video recording software I use; I try to "blur" two scenes together whenever a long period of time has elapsed between 30 second clips though I do occasionally miss some).

There are some videos below comparing the QDM to a classical probabilistic decision maker - however we stress that a classical decision maker can be used to produce the same result as a quantum one given sufficient states and fine-tuning of the transition probabilities. The question is, can the QDM do so more naturally and with fewer states?

Video 1: Click to play

One of the first tests of the quantum decision maker. Notice the robot will on occasion, decide to follow a wall. Action space is 1-dimensional (with 3 actions); Delta space has degree 1+1+1.


Video 2: Click to play

Testing the Quantum Decision Maker with a single action, over a 1-dim space with delta size of 2+1+2. The final 30 seconds show a real time graph of the Action space (top) and Delta space (bottom).


Video 3: Click to play

Another test of the quantum decision maker with entangled action space (two 1-dim spaces, each space is three actions); delta space has dim (1+1+1)x(1+1+1).


Video 4: Click to play

Testing the quantum decision maker with two robots. Each has a QDM with two action spaces (1-dim each, 3 actions each); Delta space has dimension (1+1+1)x(1+1+1). First action space is left, center, right; second is chirp1, silent, chirp2. (chirp1 is represented by a green circle; chirp2 by a red circle). Robots try to imitate chirps they hear; the chirps they hear also affects the motion action space.

Notice that one robot tends to chirp more; also notice that robots tend to find each other and follow one another.


Video 5: Click to play

Showing some of the interesting behaviors that develop when more than one robot is run. Each robot uses the same set of input operators. Each robot may move left, forward, right; also each robot may chirp1 (green), silent, chirp2 (red). Input operators are designed to move away from walls and to copy whatever chirp was heard last. Also, if a green chirp was heard to the left (resp. right), the "wall to right" (resp. "wall to left") operator was applied (for red, the opposite). Of course due to the complex interaction between the movement and chirp actions these are only suggestions. Furthermore, hearing two greens and one red chirp may produce a different output than hearing two reds and one green for example. Notice how two of the robots tend to follow each other.


Video 6: Click to play

Robot with two action spaces: one for drive motor control, the other for the rotatable IR sensor. Notice that at the start the robot is not following a wall but will through most of the video (though at times the robot decides to move further from the wall than at other times).


Video 7: Click to play

In this video we have two robots each running two QDMs. The first QDM is responsible for drive motor control and the chirping action; the second is responsible for the head rotation. Furthermore, the second QDM's decisional space is never reset. Notice that the robots will tend towards each other for a while then wander off.


Videos 8-12:
Simple Classical Flocking
QDM Controlled Flocking
QDM Controlled Flocking (Part 2)
QDM Controlled Flocking (25 birds)
QDM Controlled Flocking (25 birds, second run)

Showing some clips from a flocking simulation using the QDM for AI control. Classical circuitry suggests moving left or right; the QDM decides which direction to move. Suggestions are based on the three basic flocking rules: move away from fish if too close, move towards center of mass, and steer in same direction as others. Be sure to view the classical comparison video (which translates the suggestions directly into actions instead of using the quantum decision maker).

Note that there is no external stimuli (obstacles, goals, etc.) just the three basic flocking rules and the 10-15 fish.


Video 13: Click to play

Comparing classical flocking - here each bird chooses the wrong decision with probability .1 independently each iteration. This video uses a classical decision maker, not our quantum decision maker!


Video 14: Click to play

The first 1 minute of this video shows classical flocking with a probabilistic rule set where each bird is programmed to follow the flocking rules mostly but disregard them with a small probability (and then continues to disregard them for a small amount of time). The last 1 minute of the video shows the quantum model of flocking.


Videos 15 - 16:
Classical Probabilistic Decision Maker - QBL Source file
Quantum Decision Maker - QBL Source file QDM Input Operators

Robots are programmed to move towards green signals, away from red signals. Furthermore, robots are programmed to emit a green signal if they turn right; a red signal if the turn left.

Comparing similar programs using a classical probabilistic decision maker and our quantum decision maker. QBL source code for both is available. Notice that the two robots tend to group together with the quantum version.


Video 17: Click to play

Change of speed parameters, making birds fly more smoothly. Video shows 2 then 3 then 5 then 15 birds.


Video 18: Click to play

Showing two robots using a Quantum Decision Maker. The first is powered by a Raspberry Pi and is running QBL. The second (shown 1 minute in) uses a Parallax Propeller and is running a slimmed-down QDM.


Video 19: Click to play

Using the mvebQDM for an evolutionary robotics experiment. Robot that travels the farthest from the start (upper-right room) is considered more fit. Robots have 20 seconds to run unless they pick up food (green squares) in which case they get 20 seconds extra.