Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Fast way to sort moves in movelist ?

Author: leonid

Date: 14:51:46 10/16/99

Go up one level in this thread


On October 16, 1999 at 15:57:16, Antonio Dieguez wrote:

>On October 16, 1999 at 14:19:30, leonid wrote:
>
>...
>>>>I hope you people will talk more about the move ordering, this is the most
>>>>painful part of the game to fix.
>>>>
>>>>Your number of nodes seeing in each ply for the middlegame goes well with what I
>>>>see in mine. The best average number of nodes that I was able to come was 21%.
>>>>This number is the devision between the number of nodes that my logic is forced
>>>>to see in each ply devided on number of nodes for given ply.
>>>>
>>>>If it could be interesting my move ordering it goes this way:
>>>>1) First moves that put under the fire the ennemy king.
>>>>2) Moves with capture put in in four categories. The last capture of the pawn.
>>>>3) At the end of the chaine are the moves without any material advantage.
>>>>
>>>>a) Last best move used to be checked against the moves whith best material
>>>>advantage. If found, is put at the head of the moves with material advantage.
>>>>b) Last 8 best moves are taken from the chaine of the best previous moves and
>>>>used to align the moves that give no material advantage.
>>>>
>>>>If somebogy will mention what is the "bubble sort" it will be appreciated.
>>>>
>>>>Leonid.
>>>
>>>hi again leonid, I see in my game a really big difference with killers and
>>>withouth them, so I hope you check your implementation very well, and also
>>>seeing captures I dont know if in your program is well ordered since I dont know
>>>what you consider moves that "put under fire the enemy king", but eating a piece
>>>with a pawn could win the game and a heavy atacking move could not even been
>>>apreciated by your eval but I dont know what are that moves...
>>>
>>>Also please post what do you find about how many nodes in the initial
>>>position... without null-move and early prunes.
>>
>>Hi!
>
>hi!
>
>>Move that put the ennemy king under the fire is the move that will check the
>>adversary king. I said before "check" this way because simetime I am not sure
>>how my words will be understood. Have bad experience of mysefl for not
>>recognizing significance of certain simple expression like "fixed depth".
>
>ok.
>you are not the only one.
>
>>For me the moves that end by material advantage are the moves that end by
>>capture or promotion of the pawn. My other expession that was not clear is the
>>expression that indicated the move that lead to the material advantage equal to
>>the taking of pawn.
>
>ok.
>
>>When I spoke about the number of nodes forced to see in the ply, I should say
>>also I spoke about "brute force" search done without any "extentions". Nul-move,
>>as far as I know is done for some quck but not perfect search in the ply. For
>>the search that I call "quick search" I don't use the "nul-move" but something
>>very simple and probaly different.
>
>ok.
>Anyway hash table is another important item that programs uses so you would have
>to worry about it too to improve the amount of nodes in brute force, and do good
>comparison with other programs, or give 0 mbs for both programs.
>
>>So how many nodes for the perfect search generally logic is forced to see in the
>>game?
>
>I have not implemented some test modes yet, so I would not give you exactly
>numbers, am sorry about that but I am not a good example I repeat.
>But if I generate captures first, how will I know how many moves of the total I
>see if a cut off appears?, I would have to do some changes.
>
>And here is my move order now
>
>1.last capture that has caused cut off
>(I will change this for capture to the last moved piece only may be)
>2.pieces eating no less valuable pieces, starting with pawns as the piece that
>capture and so on.
>3.pieces capturing less valueble pieces, starting with horses and so on...
>4.the first killer
>5.the second...
>6.the third...
>7.moves that advance or not come back a piece, first with pieces, last pawns.
>8.moves that come back.
>
>in 7 and 8 I still dont make difference about the king(it has to be the last of
>the last in the opening at least and except castling but that rarely cuts some
>nodes.)
>
>the actualization of the killers are simple switch between them, when they cause
>cut off or are the best move >initialAlpha  && !kingInCheck.
>
>I dont believe is better first see moves that check the oponent before captures,
>except obviusly losing captures.
>
>>You can respond here or send your message to leonide@total.net
>
>sure! but you first to zodiamoon@yahoo.com
>
>>And what language you use for your game and in what stage is your writing?
>
>java, and you?
>
>>Leonid.


>me.


To put in the chain of moves first the moves that give the check is simple -
those moves can lead to the mate. Mate stop all the thinking, once the highest
possible value is achieved. Looking through the "tool" I found that the number
of moves that lead to check is very small. This is the next reason for leaving
those moves at the head of the chain.

I looked into your description of the move ordering and I hope that I understood
correctly everything that you have said. It is probable that our move ordering
is very close but we explain it in a different fashion.

Languages that we use are not the same. Mine is Assembler. Until now wrote
everything for DOS but prepare to rewrite everything for Windows. And for what
system you write? Or probably Java is already perfect for every system?

By listening you people here found one good idea. It not brought me to the
Paradize but at least to some slight (1.5%) speeding of my logic. Now I wrote
only for the 1 ply (lowest is 0). When I will write the same for the upper plys
will see what it finally give to me. To listening to the other people helps.

Do you have your Web Site to see what you do?

Leonid.



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.