Author: Andrew Dados
Date: 13:17:54 03/30/00
Go up one level in this thread
On March 30, 2000 at 15:54:15, Dave Gomboc wrote: >On March 30, 2000 at 01:37:33, Andrew Dados wrote: > >>On March 29, 2000 at 23:50:51, Dave Gomboc wrote: >> >>>On March 28, 2000 at 23:30:11, Andrew Dados wrote: >>> >>>>On March 28, 2000 at 22:06:42, Dave Gomboc wrote: >>>> >>>>>On March 28, 2000 at 17:19:34, Andrew Dados wrote: >>>>> >>>>>>On March 28, 2000 at 16:41:17, Dave Gomboc wrote: >>>>>> >>>>>>>On March 28, 2000 at 13:27:59, Andrew Dados wrote: >>>>>>> >>>>>>>>On March 28, 2000 at 13:14:59, Dave Gomboc wrote: >>>>>>>> >>>>>>>>>On March 28, 2000 at 12:17:14, Tom Kerrigan wrote: >>>>>>>>> >>>>>>>>>>On March 28, 2000 at 11:08:59, Bas Hamstra wrote: >>>>>>>>>> >>>>>>>>>>>Question is: is move ordering very important near the root and less important >>>>>>>>>>>near the leafs? Bob Hyatt says so. One mistake near the root costs millions of >>>>>>>>>>>nodes. On the other hand almost all nodes are leafnodes, so bad ordering near >>>>>>>>>>>the leafs costs millions of nodes too. >>>>>>>>>> >>>>>>>>>>I think so. At least in my program, hash table size does not matter much. (See >>>>>>>>>>previous posts in this thread.) >>>>>>>>>> >>>>>>>>>>>Has anyone measured if you search somewhat deeper if you do extensive ordering >>>>>>>>>>>near the root and cheap (just MVV/LVA) ordering near the leafs and in the >>>>>>>>>>>qsearch? >>>>>>>>>> >>>>>>>>>>Because SEE only improves things by ~%10 over MVV/LVA, I don't think doing SEE >>>>>>>>>>at the root and MVV/LVA otherwise would make much sense. You can do searches to >>>>>>>>>>improve move ordering, which is the idea behind internal interative deepening. >>>>>>>>>>So yes, people are doing this, and I believe it works, although I haven't tried >>>>>>>>>>it myself. >>>>>>>>>> >>>>>>>>>>-Tom >>>>>>>>> >>>>>>>>>I have yet to figure out why people who use iterative deepening and understand >>>>>>>>>why it works do not also use internal iterative deepening. Could somebody >>>>>>>>>enlighten me? >>>>>>>>> >>>>>>>>>Dave >>>>>>>> >>>>>>>>It will only work when node you do it at will fail high, otherwise it's waste of >>>>>>>>nodes... so eg Bob does it along PV and only when no good move from HT... Some >>>>>>>>programs have 'double null move', which accomplishes pretty much the same. >>>>>>>> >>>>>>>>-Andrew- >>>>>>> >>>>>>>(I wasn't suggesting to use it everywhere.) >>>>>>> >>>>>>>I don't understand how double null-move accomplishes pretty much the same (no >>>>>>>doubt because I'm not exactly sure what you mean by "double null move" ;-). >>>>>>>Let's say you have depth 7 left to go, and you see that don't have a good move >>>>>>>from the hash table. IID will pick a move using searches of depths 1-7... and >>>>>>>the searches at low depths are no more wasted than they are with normal >>>>>>>iterative deepening. What will "double null move" do in this circumstance? >>>>>>> >>>>>>>Dave >>>>>> >>>>>>IID idea is to get a good move to try first. If there is a move from HT which >>>>>>failed high on previous iteration, then IID is useless here (will get same info >>>>>>as stored in HT). Same for fail low on previous iteration (IID will get fail low >>>>>>here as well with no good move). >>>>> >>>>>Like I said, I didn't suggest using IID everywhere! I take that for granted, >>>>>but I should have been more explicit, I guess. More concretely: let's take the >>>>>situation where the hash table lookup comes up with no information. That's a >>>>>basic situation where I think IID can be useful. Let's also assume that there >>>>>is a reasonable amount of depth left to go. (People can always come up with >>>>>tricks if there's hardly any depth left -- which isn't relevant to the main >>>>>debate.) >>>>> >>>>>>If there is no data in HT (entry was owerwritten) we don't know whether this >>>>>>node will get FL (IID will just waste nodes here) or FH (IID can be useful to >>>>>>get a good move, but maybe our move ordering is good enough not to try IID). >>>>> >>>>>So in the case where there is going to be a fail-low, you think that doing IID >>>>>will use more time than just searching every move immediately at the required >>>>>depth? Why? (If that's not what you meant, then I misunderstood you.) >>>> >>>>That's what I ment, yes. You *have to* search all the moves at that ply to full >>>>depth anyway, so searching first to depth 1, then 2, etc is not helpful at all >>>>in FL node. You'll waste all those nodes. >>> >>>"not helpful at all"? IID will give you better move ordering than you could get >>>statically, which should save you work overall. >>> >> >>Just curious... what 'better move ordering' in FL node? Any move ordering is as >>good as other there (we will search all moves and all will fail low)... and that >>was my main point. > >To show that it is a fail-low node, you have to refute each move. Better move >ordering allows you to do this more quickly. I think your main point is >actually incorrect. > >Dave As I suggested: modify some code and experiment... In mine doing IID when there is no HT entry adds nodes... I agree that if I could distinguish FL from FH nodes with some accuracy, I will probably save nodes with IID at predicted FH nodes. Trying IID at FL nodes definitely makes no sense IMO: node at next ply will be FH and *there* I should try IID for better move ordering and faster cutoff. (if I still have no hash entry there). Also null move made (at FL node) as first already helps me bigtime with move ordering at next ply (killers). Anyway if you find experiments with IID saving you nodecounts, let me know. -Andrew-
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.