User Help

From ADS-AC

Jump to: navigation, search

This is a very preliminary and rough help for ads-ac program.

Ads-ac program is an example of an universal Artificial Consciousness program, such program would likely look similar, even if using some other AC mechanism.

Contents

Starting the program

Unless you want to create a completely new structure yourself, you should open a structure file first (Files menu), and open a training program. Training program can be later changed without exiting the program, this is useful for training with several different training programs, for example letting the system to work without a training program (dt0.dll) for a while. This has been achieved by dynamic loading of the training program, training program is a plugin to ads-ac program, which can be written and compiled separately. After the structure file and training program were opened, click the "work" checkbox, the structure file starts to run. Clicking the "work" button again, stops the system, and enables again all the actions in the menu.

Save as is

Save as in the Files menu saves the structure in that order, as it is in memory. Save and Save as rearrange the order by the sequence in chains, this is mostly necessary for changing the size of the system, as only the number of free links will be written for freechain.

Print knots

Print knots in Tools menu shows the beginning and end of the chains if no knot address is given. This enables to see a certain number of knots from the beginning, or from the end of a chain. You can copy and paste the knot address to the dialog box. Again, this is not yet very user friendly, but it works. Everything which can be seen by Print knots is everything there is in the system. So the dialog boxes in the Tools menu enable to see and change everything in the system.

Create knot

Create knot in Tools menu works in two ways. To create a first knot in a system, just write in Adj box, how many adjacent knots it should have, then press OK. This creates the knot, address of which shall be shown in the Address box, and the desired number of adjacent knots. All other knots can be created by writing the address of an adjacent knot into Add Knot box, and clicking Add, then again, until all adjacent knots are connected, and finally OK. Writing the address in the Address box makes sense only when creating an i/o knot. The function of entering the knots was created a long time ago, unfortunately with not much effort to make it very user friendly, though it works well. In order to create knots in an empty system, without any structure files opened, one should increase the system size first (see System options in System menu).

System options

Mostly, reversed, independent, and conjuctive are checked. Reversed means the order how to delete the knots when there is lack of space, should not happen for stable system, but there must be some way to reach that, so reversed does it so that it still learns, by deleting the oldest knots.

Conjunctive means simply whether to create knots with a single link, or not. I didn't find any theoretical reasons yet, why such knots should not be there, but it seems logical that knots which don't connect anything, don't make sense.

Independent is not fully independent, it just prevents creating knots with new knots. It doesn't change anything a lot, but seems to have a good influence. Fully independent means that a generation of new knots are created like in an instance, the output is generated as a picture, or code of a letter, based on all these knots, and so the order of creating new knots doesn't matter, like one generation of them was created all at the same time. This would also make it easier to share the processing, say, in beawulf cluster. The fully independent mode is not implemented yet, but the current independent mode is close to that, when it outputs a single character at a time. I'm the most sure that there would not be any big differencies in how it works, when it will be indeed fully independent.

Delay is just to make it work more slowly, to see what it does.

Free space is not often used, it just holds some space free, but is not less destructive, than other deleting. But it is useful to decrease system size. It is that we cannot do that, before it succeeds to free some space, but it may need to work a little for that, as several vital knots, which cannot be changed by deleting, may be tied to most of the knots.

The smallest system size where it still does something is probably 65000 (ie 65000 links). Maxlinks (literally maximum allowed number of links in a knot) is then 200 the best, and no decay. This is something for the beginning, as bigger system size at the beginning is usually not stable, later it's mostly necessary to increase the size.

The other tried configuration is that of the test (di.str). It is size 200 000, maxlinks 1000, and decay 400. Decay is another way to restrict it to grow too much. Theoretically such system should be infinite, but in reality it must be restricted. Again, very stable system should not need that, but somehow it has to achieve stability, decay is something which very naturally may happen in nature, like in nerve cells. Decay 400 literally means that no knot lives longer than 400 cycles. This also shows well the dynamism, as in spite of that it remembers its behaviour, as test shows, and as I saw it, other things as well, very long time. Maxlinks 1000 is then just such number, that with decay 400 no knot usually grows bigger, and so it doesn't restrict anything. When decay is 400, then for stable system the size should be at least 400 * 400, ie when the system would not be strange like very long chains or such.

Personal tools