
MENACE - CarolineW
http://www.mscroggs.co.uk/blog/19
======
kabdib
Fred Saberhagen wrote a short story ( _Without a Thought_ ) in which this
little "computer" played a role. Published in 1963; I always wondered where
the idea came from.

~~~
dsr_
Also appears in the classic AI novel The Adolescence of P1 by Thomas Ryan.

~~~
kabdib
That's right, I'd forgotten.

Still a good read . . . though I have to keep multiplying the numbers the
author throws around for capacity (so many megabytes here and there) by about
a billion, to keep from giggling. When the book was written, a megabyte was a
really big deal.

~~~
teddyh
What I usually think is that maybe they change the byte sizes in the future,
so that a “byte” is no longer 8 bits.

(Historical note: A “word” is nowadays usually four bytes, i.e. 32 bits, but
older mainframe computer had varying word sizes; 36 bits for a word was not
uncommon.)

~~~
dsr_
Sadly, P1 is set in the 1970s and has figures appropriate for IBM systems of
that era. Near the end, an experimental cryogenic memory system is attached:

*

Testing indicated that the results of a live experi­ment would be a data
storage unit with 87 percent addressability and sufficient structural
integrity to allow a map of the "dead" areas to be constructed.

The interface being designed to link the cryos­tat to the 360/50 was geared to
address just over 16 million bytes. It was understood that this capabil­ity
would grossly understate the estimated final capacity of the cryogen.
Modifications were under way to add eight more addressing bits to the
computer. This would allow it to address over 4xl0^9 separate locations, or in
excess of 4 billion addresses. This was expected to be more in keeping with
the ultimate capacity of the cryogen at 150 millimeters diameter by 400
millimeters high. A six-inch cylinder, sixteen inches tall.

*

The System/360 series started with 24 bits of addressing and moved to 32 bits
later on, so we're looking at a whopping 4GB. Even if the storage system uses
32 bit words, that's just 16GB.

------
pronoiac
Ugh, reset_menace() is hairy -
[https://github.com/mscroggs/MENACE/blob/master/menace.js#L18...](https://github.com/mscroggs/MENACE/blob/master/menace.js#L185)

~~~
nerdponx
Can someone help me understand why it has to look like this?

    
    
       for(var i=0;i<9;i++){for(var k=0;k<i;k++){for(var m=0;m<k;m++){
          for(var j=0;j<9;j++){if(i!=j && k!=j && m!=j){for(var l=0;l<j;l++){if(i!=l && k!=l && m!=l){for(var n=0;n<l;n++){if(i!=n && k!=n && m!=n){
                  pos=""
                  dummy_moves=Array()
                  for(var a=0;a<9;a++){
                      if(a==i || a==k || a==m){
                          pos+="1"
                          dummy_moves.push(0)
                      } else if(a==j || a==l || a==n){
                          pos+="2"
                          dummy_moves.push(0)
                      } else {
                          pos+="0"
                          dummy_moves.push(s[3])
                      }
                  }
                  add_box(pos,dummy_moves)
      }}} }}}}}}

~~~
tyingq
continue; could reduce the depth a bit, but it's still gnarly.
[https://gist.github.com/anonymous/f3607a28a4c8ad1322f13a2d10...](https://gist.github.com/anonymous/f3607a28a4c8ad1322f13a2d10f28b5e)

~~~
pronoiac
I have a ridiculous urge to refactor this.

It's enumerating all of the boards, legal or not. Judging by the letters, it's
doing one player's moves at first, in a way that's trying to avoid repeats. If
I were to do this, I'd have, well, menace_x and menace_o, and build move n
from move n-1. Depth-first would also work, really, as we're talking about
only 300-ish boards.

------
pavlov
This suggests a thought experiment for those worried about superhuman AI. If
you add more matchboxes to this setup while teaching it to play something
else, is it going to become intelligent eventually? Maybe at a billion
matchboxes?

If that doesn’t seem believable, why be worried about machine learning
algorithms running on digital computers instead of matchbox arrays?

~~~
comex
> If you add more matchboxes to this setup while teaching it to play something
> else, is it going to become intelligent eventually?

No, because the design uses a different matchbox for every possible state of
the game. If you taught it to play chess, a billion matchboxes wouldn't be
enough to get four moves in.[1] Yet digital computers can play chess.

On the other hand, if you switched to a completely different design that uses
matchboxes to simulate an artificial neural network… a design that would
require opening _each_ matchbox on _each_ time step…

…and pumped the number of boxes up to 100 billion (number of neurons in the
human brain) or higher…

…and ran the simulation for, perhaps, trillions of time steps (need to
simulate evolution, not just the operation of the brain during a single
lifetime)…

…and changed the goal from playing a game to something that would require more
general logical reasoning...

…then who knows, it might well become intelligent (though it's hard to be
sure). But at that point I'd say the lack of believability has more to do with
the difficulty of performing 100,000,000,000,000,000,000,000 matchbox
operations, than the likelihood of achieving useful results if you did.

[1] [http://www.bernmedical.com/blog/how-many-possible-move-
combi...](http://www.bernmedical.com/blog/how-many-possible-move-combinations-
are-there-in-chess)

~~~
TeMPOraL
Related: [https://xkcd.com/505/](https://xkcd.com/505/).

