Tuesday, 16 February 2016

Folding proteins with a fractal

Yesterday I posted about the fractal algorithm adapted to function optimising, the test I showed was nice, but dealing with a 2D function is not so great if you plan to go big.

After that Guillem forgot to go home and stayed coding a little more at the office. This morning the algorithm was able to load test proteins and try to fold them by minimising the Lennard-Jones potential of the cluster. He sleept in the sofa!

Here you see it folding a 5 atoms "protein":


Monday, 15 February 2016

Serious fractal optimizing

Guillem Duran, my friend and college from twitter, is now full-time at work with me at converting the "one way" fractal algorithm used in my latest AI into a "serious" general optimising algorithm in python: given a function, find its global (as opposed to local) maximum -or minimum- value it can get on its entire domain -the points on the state space where the function is defined.

Last week we finished the conversion, so we are just starting to benchmark it against other "state of the art" similar algorithms, but to have a first view of the you have a preliminar video here:


Friday, 25 December 2015

Fractal AI collaboration

Controlling an arbitrary complex agent so it behaves "intelligently" by using the thermodynamic concept of causal entropic forces is possible by using an special kind of fractal decision tree, the "One Way" fractal algorithm I have commented here before.

But controlling a group of agents in a intelligent way is not that simple. I always managed to make several agents to evolve at the same time in the same environment, but it was done just by giving each agent its own personal intelligence, while considering the rest of the agents as mobile parts of the environment: obstacles to be avoided to survive.

Here is a real "swarm intelligence" controlling a group of agents as one:


Thursday, 29 October 2015

Time traveling fractal AI, a first approach

Finding a way for the fractal futures to be able to travel back in time, as in Feynman diagrams and integrals, has proved to be a little tricky, but I feel I am quite near to solve it.

In the mean time, I want to share a "dead end" try to accomplish this by using succesive layers of futures sended to the future in different succesive times, so they act as a serie of concentric wave fronts that travels to the future reinforcing each other.

Let start by showing a nice video of this idea at work:



Friday, 9 October 2015

Maze: Fractal vs Entropic

Just after reading my own last post I wondered why I didn't let both algorithms to solve the maze in similar conditions so I could have a clear idea of how better one is compared to the older.

Wow, I didn't remebered the lineal "Entropic" AI to be so limited! I always tested it in the open field as I knew it didn't perform well in maze-like environments, but it looks like the google car racing against a F1.

So just have a look to the fractal "One Way" version of the last post solving the maze:


The One Way Fractal AI

Today I consider the "One Way" version of the fractal AI to be officially finished: I can not do it any better!

I have recorded a short video directly from my screen so you can watch it at work in slow motion, generated in real time in a very slow PC (no GPU, no cuda, no paralellization, no optimising, just old and dirty standard code) so you can watch the fractal as it grows up.

What you will see in the video are the "tips" of the branches of the fractal as it evolves in time (visit the post about "Fractal algorithm basics" for more info about what those "branches" are), like a "front wave" of imaginary futures scanning all the possibilities in front of you.

It really acts as a flock of silly birds, but a very special one: all the birds are totally blind, they change direction and velocity totally randomly, like having a crazy monkey pushing the joysticks randomly, but when one bird crashes, it is cloned to a safer position, the position of one of the "best birds" in the actual flock. This process of cloning and collapsing is what defines the "Fractal growth" as commented in the last post, and it makes it possible for the futures to reach the exit of a complicated maze quite automagically.

The video start by showing you the final fractal paths used to solve the maze, then I switched the app into "Slow motion debug" mode and made a new step of the thinking process, so you can see the fractal forming. The params were 1000 futures and 100 seconds.


Sunday, 20 September 2015

Fractal algorithm basics

This post is meant to be the first in a serie about the basic working of what I now call "Fractal Growth based algorithms", including not only the "Fractal AI" I am working on, but also methods for function optimisation or even my biggest experiment, the "quantum physics simulator" showed in previous posts.

Why are those methods relevant?

I have a strong feeling that those methods could be revolutionary in several aspects and serve as a base for new mathematical tools based on the power of fractals: I think they have the power to dilute some NP problem into P, and even more interesting, into O(n), making some hard problem to become "not so hard" anymore.

Nature is made up of fractals, as Maldelbrot showed us: a tree is a fractal, the coast line is a fractal, a mountain is also a fractal, etc. but we only use fractals for drawing fractals... it is the "lovely cat generator" of modern maths.