Actually, Fibonacci numbers can be computed without loops or recursion.

int fib(int x) {
  return round(pow((1+sqrt(5))/2, x)/sqrt(5));
}

unless you argue that loops are needed to compute sqrt() and pow().

The brain and DNA use redundancy and parallelism and don't use loops because 
their operations are slow and unreliable. This is not necessarily the best 
strategy for computers because computers are fast and reliable but don't have a 
lot of parallelism.

 -- Matt Mahoney, matmaho...@yahoo.com



----- Original Message ----
From: Michael Swan <ms...@voyagergaming.com>
To: agi <agi@v2.listbox.com>
Sent: Wed, July 14, 2010 12:18:40 AM
Subject: Re: [agi] What is the smallest set of operations that can potentially  
define everything and how do you combine them ?

Brain loops:


Premise:
Biological brain code does not contain looping constructs, or the
ability to creating looping code, (due to the fact they are extremely
dangerous on unreliable hardware) except for 1 global loop that fires
about 200 times a second.

Hypothesis:
Brains cannot calculate "iterative" problems quickly, where calculations
in the previous iteration are needed for the next iteration and, where
brute force operations are the only valid option.

Proof:
Take as an example, Fibonacci numbers
http://en.wikipedia.org/wiki/Fibonacci_number

What are the first 100 Fibonacci numbers?

int Fibonacci[102];
Fibonacci[0] = 0;
Fibonacci[1] = 1;
for(int i = 0; i < 100; i++)
{
    // Getting the next Fibonacci number relies on the previous values
    Fibonacci[i+2] = Fibonacci[i] + Fibonacci[i+1];
}  

My brain knows the process to solve this problem but it can't directly
write a looping construct into itself. And so it solves it very slowly
compared to a computer. 

The brain probably consists of vast repeating look-up tables. Of course,
run in parallel these seem fast.


DNA has vast tracks of repeating data. Why would DNA contain repeating
data, instead of just having the data once and the number of times it's
repeated like in a loop? One explanation is that DNA can't do looping
construct either.



On Wed, 2010-07-14 at 02:43 +0100, Mike Tintner wrote:
> Michael: 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.
> 
> Michael,
> 
> This isn't a competitive point - but I think I've made that point several 
> times (and so of course has Hawkins). Quite obviously, (unless you think the 
> brain has fabulous hidden powers), it conducts searches and other operations 
> with extremely few limited steps, and nothing remotely like the routine 
> millions to billions of current computers.  It must therefore work v. 
> fundamentally differently.
> 
> Are you saying anything significantly different to that?
> 
> --------------------------------------------------
> From: "Michael Swan" <ms...@voyagergaming.com>
> Sent: Wednesday, July 14, 2010 1:34 AM
> To: "agi" <agi@v2.listbox.com>
> Subject: Re: [agi] What is the smallest set of operations that can 
> potentially  define everything and how do you combine them ?
> 
> >
> > 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/?&;
> > 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/?&;
> 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/?&;
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