SOMA

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Gerd Isenberg
Posts: 2250
Joined: Wed Mar 08, 2006 8:47 pm
Location: Hattingen, Germany

SOMA

Post by Gerd Isenberg »

In Jeff Rollason's SUPER-SOMA paper, he mentions the well known SOMA-Algorithm (without further reference), which seems a static exchange evaluator for single squares. In Bartel, Kraas, Schrüfer 1985 Das grosse Computer Schach Buch, they mention a chess program from 1961 by M. Smith called SOMA, which searches one ply without quiescence search. Additionally there was the chess program Schach by Rolf C. Smith and Franklin D. Ceruti, which played the early ACM events, and also utilized square controls for static exchange evaluation.

I can't find any information in the Web on Smith's SOMA program. Does anybody have further information on Smith's program and the origin of the name SOMA?

Thanks,
Gerd
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: SOMA

Post by bob »

Gerd Isenberg wrote:In Jeff Rollason's SUPER-SOMA paper, he mentions the well known SOMA-Algorithm (without further reference), which seems a static exchange evaluator for single squares. In Bartel, Kraas, Schrüfer 1985 Das grosse Computer Schach Buch, they mention a chess program from 1961 by M. Smith called SOMA, which searches one ply without quiescence search. Additionally there was the chess program Schach by Rolf C. Smith and Franklin D. Ceruti, which played the early ACM events, and also utilized square controls for static exchange evaluation.

I can't find any information in the Web on Smith's SOMA program. Does anybody have further information on Smith's program and the origin of the name SOMA?

Thanks,
Gerd
No details there. But the first SEE I saw (pun intended) was in Coko in 1970, by Dennis Cooper and Ed Kozdrowicki.
smcracraft
Posts: 737
Joined: Wed Mar 08, 2006 8:08 pm
Location: Orange County California
Full name: Stuart Cracraft

Re: SOMA

Post by smcracraft »

The first time I heard the name "SOMA"
was in a puzzle I had as a kid:

http://en.wikipedia.org/wiki/Soma_cube

Apparently it was invented on the fly. Not
a very hard puzzle. Harder than Instant
Insanity but easier than Rubik's Cube.

Later, I heard the name "SOMA" in a Huxley
novel I read (Brave New World) where it refers
to a drug the totalitarian state uses to control
its populace (or at least to quell disobedience.)

Apparently the name goes back a lot further than
recent science fiction:

http://en.wikipedia.org/wiki/Soma

I would be very surprised if the chess SOMA
is not somehow associated with one of
the two above or the generic beginnings
of SOMA outlined in the second Wiki above
but one can never tell what an inventor was
thinking at the time of a naming of something
during its creation/description... even he
might not know!

--Stuart
Alessandro Damiani
Posts: 24
Joined: Fri Mar 10, 2006 3:29 pm
Location: Zurich, Switzerland

Re: SOMA

Post by Alessandro Damiani »

Have you read this description? http://www.aifactory.co.uk/newsletter/2 ... e_alts.htm

It describes SOMA's SEE: "This text assumes that the reader is familiar with the idea of simple swap-off algorithms for determining the values of captures on single squares. This mechanism first appeared in the chess program SOMA, and is used in many Chess programs. It determines the point at which an exchange stops on a square, perhaps with no exchange occurring. It initially assumes that a complete exchange will occur and then iteratively each side can choose to stop the exchange earlier by not making an exchange, until neither side can improve the result."
Gerd Isenberg
Posts: 2250
Joined: Wed Mar 08, 2006 8:47 pm
Location: Hattingen, Germany

Re: SOMA

Post by Gerd Isenberg »

Alessandro Damiani wrote:Have you read this description? http://www.aifactory.co.uk/newsletter/2 ... e_alts.htm

It describes SOMA's SEE: "This text assumes that the reader is familiar with the idea of simple swap-off algorithms for determining the values of captures on single squares. This mechanism first appeared in the chess program SOMA, and is used in many Chess programs. It determines the point at which an exchange stops on a square, perhaps with no exchange occurring. It initially assumes that a complete exchange will occur and then iteratively each side can choose to stop the exchange earlier by not making an exchange, until neither side can improve the result."
No, I was not aware of that description - only Jeff's paper:
Jeff Rollason (2000). SUPER-SOMA - Solving Tactical Exchanges in Shogi without Tree Searching
, which is available as word doc. After searching that paper again I found:
The core of the proposed work is to attempt to predict exchanges across the whole board. There is already an algorithm called SOMA that does this (Michie, D - 1966), but only considers each square in isolation. This does not allow whole board situations to be assessed. SUPER-SOMA needs to find a mechanism to cross-reference these potential exchanges in such a way that sequences of moves from different parts of the board can be predicted.
Ok, SOMA algorithm by Donald Michie 1966!?

In Kraas and Schrüfer (1985) they mention the chess program SOMA by M. Smith from 1961, and now we'll find on the AI-Factory site:
This mechanism first appeared in the chess program SOMA, and is used in many Chess programs.
Ok, Chess programming history "research" is really interesting ;-)

Cheers,
Gerd
smcracraft
Posts: 737
Joined: Wed Mar 08, 2006 8:08 pm
Location: Orange County California
Full name: Stuart Cracraft

Re: SOMA

Post by smcracraft »

Would like to see SOMA compared side-by-side in a given program
between regular SEE and SOMA-SEE.

Side-by-side.
Gian-Carlo Pascutto
Posts: 1243
Joined: Sat Dec 13, 2008 7:00 pm

Re: SOMA

Post by Gian-Carlo Pascutto »

But what is SOMA? From the description given it sounds like full-board SEE. But we'd need to see the algorithm to compare.
smcracraft
Posts: 737
Joined: Wed Mar 08, 2006 8:08 pm
Location: Orange County California
Full name: Stuart Cracraft

Re: SOMA

Post by smcracraft »

Yes - precisely.
rebel777

Re: SOMA

Post by rebel777 »

Hi Gerd,

The first 2-3 years of Rebel were without QS. Reason: never heard of it. In those days there were hardly any papers available. So I had invented a static evaluator for hanging pieces, even a static evaluator for mate. Heck, I even had not alpha/beta, I had my own :wink:

In the last version there are still traces of the first Rebel regarding detecting hanging pieces it is described at my pages, see:

http://www.top-5000.nl/authors/rebel/chess840.htm#HW

The idea was: if you have the 2 major "hanging pieces" together with the squares that attack them and you have the 2 major opponent pieces under attack (winning pieces) together with the squares that attack them you can do a reasonable reliable static guess which piece will be lost (or won) and adapt the score, even when pins were involved. When I tried QS it was superior and I was happy to throw out all the complicated code.

Ed

Gerd Isenberg wrote:In Jeff Rollason's SUPER-SOMA paper, he mentions the well known SOMA-Algorithm (without further reference), which seems a static exchange evaluator for single squares. In Bartel, Kraas, Schrüfer 1985 Das grosse Computer Schach Buch, they mention a chess program from 1961 by M. Smith called SOMA, which searches one ply without quiescence search. Additionally there was the chess program Schach by Rolf C. Smith and Franklin D. Ceruti, which played the early ACM events, and also utilized square controls for static exchange evaluation.

I can't find any information in the Web on Smith's SOMA program. Does anybody have further information on Smith's program and the origin of the name SOMA?

Thanks,
Gerd
Gerd Isenberg
Posts: 2250
Joined: Wed Mar 08, 2006 8:47 pm
Location: Hattingen, Germany

Re: SOMA

Post by Gerd Isenberg »

rebel777 wrote:Hi Gerd,

The first 2-3 years of Rebel were without QS. Reason: never heard of it. In those days there were hardly any papers available. So I had invented a static evaluator for hanging pieces, even a static evaluator for mate. Heck, I even had not alpha/beta, I had my own :wink:

In the last version there are still traces of the first Rebel regarding detecting hanging pieces it is described at my pages, see:

http://www.top-5000.nl/authors/rebel/chess840.htm#HW

The idea was: if you have the 2 major "hanging pieces" together with the squares that attack them and you have the 2 major opponent pieces under attack (winning pieces) together with the squares that attack them you can do a reasonable reliable static guess which piece will be lost (or won) and adapt the score, even when pins were involved. When I tried QS it was superior and I was happy to throw out all the complicated code.

Ed
Hi Ed,
thanks, interesting and really incredible that you started without qsearch and your own alpha-beta in 1980. You used Z80 assembly (TRS-80) in those days? I think a good source was Chess Skill in Man and Machine by Peter W. Frey in that time, and probably the first ICCA-Newsletters.

I am aware of your hanging piece code as refered in Attack and Defend Maps from chess progamming wiki. In the meantime, do you know something about a chess program SOMA by some M. Smith from 1961, one ply without qsearch? Or the SOMA algorithm by Donald Michie from 1966?

Cheers,
Gerd