On Tue, 2010-07-13 at 07:00 -0400, Ben Goertzel wrote:
> Well, if you want a simple but complete operator set, you can go with
> 
> -- Schonfinkel combinator plus two parentheses
> 
I'll check this out soon.
> or
> 
> -- S and K combinator plus two parentheses
> 
> and I suppose you could add
> 
> -- input
> -- output
> -- forget
> 
> statements to this, but I'm not sure what this gets you...
> 
> Actually, adding other operators doesn't necessarily
> increase the search space your AI faces -- rather, it
> **decreases** the search space **if** you choose the right operators, that
> encapsulate regularities in the environment faced by the AI

Unfortunately, an AGI needs to be absolutely general. You are right that
higher level concepts reduce combinations, however, using them, will
increase combinations for "simpler" operator combinations, and if you
miss a necessary operator, then some concepts will be impossible to
achieve. The smallest set can define higher level concepts, these
concepts can be later integrated as "single" operations, which means
using "operators than can be understood in terms of smaller operators"
in the beginning, will definitely increase you combinations later on.

The smallest operator set is like absolute zero. It has a defined end. A
defined way of finding out what they are.



> 
> Exemplifying this, writing programs doing humanly simple things
> using S and K is a pain and involves piling a lot of S and K and parentheses
> on top of each other, whereas if we introduce loops and conditionals and
> such, these programs get shorter.  Because loops and conditionals happen
> to match the stuff that our human-written programs need to do...
Loops are evil in most situations.

Let me show you why:
Draw a square using put_pixel(x,y)
// loops are more scalable, but, damage this code anywhere and it can
potentially kill every other process, not just itself. This is why
computers die all the time.

for (int x = 0; x < 2; x++)
{       
        for (int y = 0; y < 2; y++)
        {
                put_pixel(x,y);
        }
}

opposed to
/* The below is faster (even on single step instructions), and can be
run in parallel, damage resistant ( ie destroy  put_pixel(0,1); and the
rest of the code will still run), is less scalable ( more code is
required for larger operations)

put_pixel(0,0);
put_pixel(0,1);
put_pixel(1,0);
put_pixel(1,1);

The lack of loops in the brain is a fundamental difference between
computers and brains. Think about it. We can't do operations that
require 1,000,000 loop iterations.  I wish someone would give me a PHD
for discovering this ;) It far better describes our differences than any
other theory.


> A better question IMO is what set of operators and structures has the
> property that the compact expressions tend to be the ones that are useful
> for survival and problem-solving in the environments that humans and human-
> like AIs need to cope with...

For me that is stage 2.

> 
> -- Ben G
> 
> On Tue, Jul 13, 2010 at 1:43 AM, Michael Swan <ms...@voyagergaming.com> wrote:
> > Hi,
> >
> > I'm interested in combining the simplest, "most derivable" operations
> > ( eg operations that cannot be defined by other operations) for creating
> > seed AGI's. The simplest operations combined in a multitude ways can
> > form extremely complex patterns, but the underlying logic may be
> > simple.
> >
> > I wonder if varying combinations of the smallest set of operations:
> >
> > { ">" , memory ("=" for memory assignment), "==", (a logical way to
> > combine them), (input, output), () "brackets"  }
> >
> > can potentially learn and define everything.
> >
> > Assume all input is from numbers.
> >
> > We want the smallest set of elements, because less elements mean less
> > combinations which mean less chance of hitting combinatorial explosion.
> >
> > ">" helps for generalisation, reducing combinations.
> >
> > memory(=) is for hash look ups, what should one remember? What can be
> > discarded?
> >
> > "==" This does a comparison between 2 values x == y is 1 if x and y are
> > exactly the same. Returns 0 if they are not the same.
> >
> > (a logical way to combine them) Any non-narrow algorithm that reduces
> > the raw data into a simpler state will do. Philosophically like
> > Solomonoff Induction. This is the hardest part. What is the most optimal
> > way of combining the above set of operations?
> >
> > () brackets are used to order operations.
> >
> >
> >
> >
> > Conditionals (only if statements) + memory assignment are the only valid
> > form of logic - ie no loops. Just repeat code if you want loops.
> >
> >
> > If you think that the set above cannot define everything, then what is
> > the smallest set of operations that can potentially define everything?
> >
> > ------------------------------------------------------------------
> > Some proofs / Thought experiments :
> >
> > 1) Can ">", "==", (), and memory define other logical operations like &
> > ("AND" gate) ?
> >
> > I propose that "x==y==1" defines "x&y"
> >
> > x&y             x==y==1
> > 0&0 = 0         0==0==1 = 0
> > 1&0 = 0         1==0==1 = 0
> > 0&1 = 0         0==1==1 = 0
> > 1&1 = 1         1==1==1 = 1
> >
> > It means "&" can be completely defined using "==" therefore "&" is not
> > one of the smallest possible general concepts. "&" can be potentially
> > "learnt" from "==".
> >
> > -----------------------------------------------------------------
> >
> > 2) Write a algorithm that can define "1" using only >,==, ().
> >
> > Multiple answers
> > a) "discrete 1 could use"
> > x == 1
> >
> > b) "continuous 1.0 could use this rule"
> > For those not familiar with C++, "!" means "not"
> > (x > 0.9) && !(x > 1.1)   expanding gives ( getting rid of "!" and "&&")
> > (x > 0.9) == ((x > 1.1) == 0) == 1    note "!x" can be defined in terms
> > of "==" like so x == 0.
> >
> > (b) is a generalisation, and expansion of the definition of (a) and can
> > be scaled by changing the values "0.9" and "1.1" to fit what others
> > would generally define as being 1.
> >
> >
> >
> >
> > -------------------------------------------
> > agi
> > Archives: https://www.listbox.com/member/archive/303/=now
> > RSS Feed: https://www.listbox.com/member/archive/rss/303/
> > Modify Your Subscription: https://www.listbox.com/member/?&;
> > Powered by Listbox: http://www.listbox.com
> >
> 
> 
> 



-------------------------------------------
agi
Archives: https://www.listbox.com/member/archive/303/=now
RSS Feed: https://www.listbox.com/member/archive/rss/303/
Modify Your Subscription: 
https://www.listbox.com/member/?member_id=8660244&id_secret=8660244-6e7fb59c
Powered by Listbox: http://www.listbox.com

Reply via email to