Borsuk

  • 6 Replies
  • 435 Views
*

pawel.biernacki

  • Roomba
  • *
  • 15
Borsuk
« on: December 12, 2018, 12:01:26 am »
Hi,
I have a new project. My former project was Perkun, an experimental AI language based on my own optimization algorithm supporting hidden variables. My new project is Borsuk, you can download it from:

www.pawelbiernacki.net/borsuk-0.0.0.tar.gz

It is not finished yet, but I wanted to discuss it here. The problem with Perkun is that it assumes all hidden variables to be not independent (the most general assumption but also very costly in terms of memory and computational power). Borsuk will assume that most hidden variables are independent. This will allow it to have hundreds, possibly thousands of hidden variables.

Take a look at the file examples/example2_fantasy.borsuk . If you run it with borsuk (which you have to build first) you will obtain a file content of examples/example2_fantasy.txt. It contains among others 387 hidden variables generated from the following code:

hidden variable has_(A:person)_(X:activity)_(B:person):boolean;
hidden variable does_(A:person)_like_(B:person):boolean;
hidden variable is_(A:person)_afraid_of_(B:person):boolean;
hidden variable (A:person)_is_in_(X:town):boolean;
hidden variable has_(A:person)_told_(B:person)_that_(C:person)_has_(X:activity)_(D:person):boolean;


These are "templates" of the hidden variables to be generated. The last one for example generates all tuples (A,B,C,X,D) satisfying the condition A is a person, B is a person, C is a person, X is an activity, D is a person. It then generates variables like:

hidden variable has_pregor_told_dorban_that_pregor_has_attacked_me:{none,false,true};

In short - I plan to use the same algorithm but allow many more hidden variables than in Perkun.

Borsuk requires the SWI Prolog (the devel packages) to be built.

*

ivan.moony

  • Trusty Member
  • **********
  • Millennium Man
  • *
  • 1181
    • Some of my projects
Re: Borsuk
« Reply #1 on: December 14, 2018, 12:51:54 pm »
Hi Pawel  :)

what concrete actions we can perform with Borsuk, aside from having a lot of variables?
Dream big. The bigger the dream is, the more beautiful place the world becomes.

*

pawel.biernacki

  • Roomba
  • *
  • 15
Re: Borsuk
« Reply #2 on: December 14, 2018, 02:41:21 pm »
I am afraid it is not fully functional yet. I just wanted to share with you the syntax of the variable templates.

The following commands work in Borsuk already:

cout << variables << eol;
cout << objects << eol;
cout << rules << eol;
cout << actions << eol;
cout << payoff << eol;
cout << visible states << eol;
cout << model << eol;


The command "loop" which is entering the interactive optimization mode is not fully implemented yet.

As long as I don't have Borsuk completed you have to use Perkun in order to use my algorithm.

The objective is to maximize the expected value of the payoff function. When you add the command "loop(2);" for example then you will enter the optimization mode. You need to enter the values of the input variables, then Perkun/Borsuk chooses the optimal action that is maximizing the payoff within the next 2 steps.
« Last Edit: December 14, 2018, 03:04:33 pm by pawel.biernacki »

*

8pla.net

  • Trusty Member
  • **********
  • Millennium Man
  • *
  • 1123
  • TV News. Pub. UAL (PhD). Robitron Mod. LPC Judge.
    • 8pla.net
Re: Borsuk
« Reply #3 on: December 14, 2018, 05:14:30 pm »
Is it not fully implemented, as a result of expansion?
My Very Enormous Monster Just Stopped Using Nine

*

pawel.biernacki

  • Roomba
  • *
  • 15
Re: Borsuk
« Reply #4 on: December 14, 2018, 05:54:09 pm »
Borsuk is not fully implemented. It is indeed related with Perkun, I used some Perkun code to produce Borsuk.

I encourage you to use Perkun, it is good when you do not have too many variables.

https://sourceforge.net/projects/perkun/

*

8pla.net

  • Trusty Member
  • **********
  • Millennium Man
  • *
  • 1123
  • TV News. Pub. UAL (PhD). Robitron Mod. LPC Judge.
    • 8pla.net
Re: Borsuk
« Reply #5 on: December 14, 2018, 09:28:19 pm »
Pawal, what I meant by my question, is that I can relate to that.  Although I was careful, when I expanded my own project... I ran into some trouble. So, I had to go backwards to figure out a new strategy forward.
My Very Enormous Monster Just Stopped Using Nine

*

pawel.biernacki

  • Roomba
  • *
  • 15
Re: Borsuk
« Reply #6 on: December 15, 2018, 12:00:18 am »
I have a good example of what Perkun can do. Take a look at my game:

https://sourceforge.net/projects/perkunwars/

This is not a good game but it is a good example how to use Perkun as a library. There are three NPCs there, each controlled by a separate process running a Perkun interpreter. They all talk to the main process through pipes (see the file src/perkun_wars.cc). Take a look at perkun/final_code. It contains the Perkun specifications of the NPCs.

 


Users Online

108 Guests, 1 User
Users active in past 15 minutes:
LOCKSUIT
[Trusty Member]

Most Online Today: 138. Most Online Ever: 259 (February 07, 2019, 07:00:00 am)

Articles