Big new ideas in chess programming

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

jdart
Posts: 4367
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Big new ideas in chess programming

Post by jdart »

Wine does not run some things, notably Adobe Lightroom (last I checked), which I use rather heavily for photo processing and organizing. ChessBase apparently does not run well either (http://appdb.winehq.org/objectManager.p ... n&iId=2793), which is a real deal-breaker for me. I am not so enamoured of open source that I am giving up these apps. I do, though run Linux on 4 of my 5 computer systems.

--Jon
kinderchocolate
Posts: 454
Joined: Mon Nov 01, 2010 6:55 am
Full name: Ted Wong

Re: Big new ideas in chess programming

Post by kinderchocolate »

I just point out that open source or not is irrelevant and definitely not a key factor to success. It's all about the management. Stockfish has very good management. On the engine side, Macro frequently answers inquiries and they even have a support forum. On the GUI side, they have Tord working for an free project which further strengthen their popularity. If they hadn't done anything themselves, the Stockfish would never pull off, open source or not makes no difference. Open source projects like Firezilla that expects a contributor to do the works will not go anywhere.

Microsoft screwed up because their management focused too much on short term profits, not because they don't disclose their source code to us.
syzygy
Posts: 5566
Joined: Tue Feb 28, 2012 11:56 pm

Re: Big new ideas in chess programming

Post by syzygy »

Don wrote:The recent additional success (SF has ALWAYS been successful) is due to the testing framework and harnessing the power of many machines. It has nothing to do with open source in this case although I agree with your statements in general.
Why did this approach not work out for Komodo? I remember you were asking for volunteers with test machines long before Fishtest came around.
syzygy
Posts: 5566
Joined: Tue Feb 28, 2012 11:56 pm

Re: Big new ideas in chess programming

Post by syzygy »

bob wrote:"wine rybka-1.0beta.exe" will fire it right up...
Or just type "./rybka-1.0beta.exe". This might be distribution dependent, but works at least on Fedora.

I create Windows executables on Linux using MinGW, then run them on Linux as if they are native executables.
rreagan
Posts: 102
Joined: Sun Sep 09, 2007 6:32 am

Re: Big new ideas in chess programming

Post by rreagan »

If you define a "big new idea" as an idea that if you have it and others don't, then you're going to be the clear #1, then I would guess there will continue to be big new ideas for a long time to come.

It's really hard to see what things will be thought of in the future. We can already think of a handful of things that could be the next big thing. If someone figures out how to make MC search work in chess, it could potentially dominate all existing engines. Maybe someone makes a program that writes chess engines and ends up creating a singularity in computer chess. Then the sky is the limit.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Big new ideas in chess programming

Post by bob »

syzygy wrote:
bob wrote:"wine rybka-1.0beta.exe" will fire it right up...
Or just type "./rybka-1.0beta.exe". This might be distribution dependent, but works at least on Fedora.

I create Windows executables on Linux using MinGW, then run them on Linux as if they are native executables.
Never tried that.. no doubt a file type association that does make perfect sense. Will try it on my linux laptop tomorrow.

mac osx (mountain lion) does not run a .exe however, have to start wine myself...
mcostalba
Posts: 2684
Joined: Sat Jun 14, 2008 9:17 pm

Re: Big new ideas in chess programming

Post by mcostalba »

Don wrote: Here is my take on it. Stockfish is strong primarily due to Tord's initial contribution and then later by Marco and Joona in no particular order. Look who is listed when you type "uci."
Almost one year ago, when Gary presented his testing framework I said this was a milestone due to enabling open development. You joked saying "please, let me be in the known" because you thought the achievement was the hardware part, not the open development one, and the hardware part was not a novelty (Crafty has used big hardware for testing since always).

Now, after almost one year, you still have not seen the light :-), you still think is the hardware...but is not. It is the people, not the hardware.

The hardware is instrumental in enabling a very resource consuming testing procedure that allows the people to fail safely.

And it is because the people can fail safely that we have many people, writing many patches and as a result we have a sustained small flow of good stuff filtered out from the cruft.

Modern engines are all about statistics, their behaviour and strength is all based on statistical rules (see LMR), now we have seen that also engine development is in some way a statistical game, and in this game to have many people playing around is a huge bonus as long as you are able to filtered out the few good shots.

It is the people, not the hardware ! ....perhaps it will be the 2014 the year when you'll come in the known. :-)
rtitle
Posts: 33
Joined: Wed Aug 14, 2013 7:23 pm

Re: Big new ideas in chess programming

Post by rtitle »

OK. I will concede the point on open source and apologize for derailing the discussion in that direction.

I still have an intuition that the current "standard approach" for building chess engines is not the end of the line. I'd define the "standard approach" as:

- Iterative deepening minimax search doing heuristic eval at leaves, with alpha-beta optimization applied to the search
- Use many cores by distributing the search with a PVS splitting type of algorithm
- Use big memory by filling it with a large transposition table, used (primarily) for optimizing the alpha-beta search by remembering best move previously computed in the same position. (Previously computed by an earlier iteratation of the iterative deepening search that is). Note BTW that "transposition table" is a misnomer, since the primary function of the transposition table is not to detect transpositions (i.e. same position reached by a different move order), but rather it is to remember information about the position from previous searches (same position reached by same move sequence). I prefer to call it the "history table" for that reason.

I think all current chess engines are refinements of the above approach. Very clever and impressively high-performing refinements, yes. But all basically the same approach.

Quoting from one reply: "It's really hard to see what things will be thought of in the future. We can already think of a handful of things that could be the next big thing. If someone figures out how to make MC search work in chess, it could potentially dominate all existing engines."

I agree MC (multi-cut) search would be an advance, but it's still a refinement of the standard approach, not a big new idea. In fact it's not a new idea at all, just an existing idea that nobody has figured out how to make it work.

On the "it's really hard to see what things will be thought of in the future" part of the statement. Yes, well, by definition *new* ideas are things nobody has thought of yet. For example, one could imagine someone saying in the 1800's "it's hard to see how someone could come up with a better explanation of the laws of mechanics than Newton's Principia". Then Einstein came along with relativity. That's the nature of big new ideas. You can *have* a new idea, but you can't *anticipate* having a new idea.

*My* intuitions as to what areas the big new ideas will fall into are:

(1) someone will come up with a better way to use big memory than the so-called transposition table. I.e. representing a subset of the search history in a different data structure, perhaps as an explicit tree . Why does everyone accept transposition tables as the only approach? They sort of suck in the sense that there's a lot of randomness in what subset of positions get stored. And they don't distribute well if you want to move to a cloud solution.

(2) Current approaches to optimizing the search (i.e. selectivity - where to prune, where to extend) are very local in nature - you have limited information about your position in the overall search. Leveraging (1), someone will come up with ways to search the truly critical tree of variations (which might be very irregular - deep in some lines, shallow in others).

Just some thoughts and ideas from a software professional. Not sure I'll ever have time to implement them since my day job is to come up with and implement big new ideas in a startup that has nothing to do with computer chess. (It's in the "big data" field). Computer chess is a really interesting problem, but unfortunately nobody's going to get rich developing chess software. :-(
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: Big new ideas in chess programming

Post by Don »

mcostalba wrote:
Don wrote: Here is my take on it. Stockfish is strong primarily due to Tord's initial contribution and then later by Marco and Joona in no particular order. Look who is listed when you type "uci."
Almost one year ago, when Gary presented his testing framework I said this was a milestone due to enabling open development. You joked saying "please, let me be in the known" because you thought the achievement was the hardware part, not the open development one, and the hardware part was not a novelty (Crafty has used big hardware for testing since always).

Now, after almost one year, you still have not seen the light :-), you still think is the hardware...but is not. It is the people, not the hardware.

The hardware is instrumental in enabling a very resource consuming testing procedure that allows the people to fail safely.

And it is because the people can fail safely that we have many people, writing many patches and as a result we have a sustained small flow of good stuff filtered out from the cruft.

Modern engines are all about statistics, their behaviour and strength is all based on statistical rules (see LMR), now we have seen that also engine development is in some way a statistical game, and in this game to have many people playing around is a huge bonus as long as you are able to filtered out the few good shots.
That is not possible without a lot of hardware. So you could have a lot of people contributing ideas and testing on a single quad but only the hardware makes it possible to get to those idea's in a timely fashion.

It is the people, not the hardware ! ....perhaps it will be the 2014 the year when you'll come in the known. :-)
You should at least consider adding the name of the biggest contributors to the list of authors. The program announces only the 3 of you as authors - so if the people are the most important thing why don't they get to be considered authors? Would they have to fork to get their names stamped on the program?
Capital punishment would be more effective as a preventive measure if it were administered prior to the crime.
rreagan
Posts: 102
Joined: Sun Sep 09, 2007 6:32 am

Re: Big new ideas in chess programming

Post by rreagan »

rtitle wrote: Quoting from one reply: "It's really hard to see what things will be thought of in the future. We can already think of a handful of things that could be the next big thing. If someone figures out how to make MC search work in chess, it could potentially dominate all existing engines."

I agree MC (multi-cut)...
Sorry, I meant Monte-Carlo based approaches, like those used in Go.