The idea is to do the first x iterations without AB. What's the effect? You get a fully sorted root move list based on the

**real**scores. I use these real values for LMR at root moves with a 0.12 margin and reduce one ply after all.

That's it. I call the technique AB_FOOL for the moment.

Some code snippets to clarify.

Code: Select all

`char ab_depth=2; // 3 or 4`

if (ab_depth <= iteration_depth) { don't do AB; }

Only needed in the main-search, keep AB in QS.

Code: Select all

```
int root_score [max_moves]; // where the normal root scores are
int ab_fool_score [max_moves]; // shadow table for the ab_fool scores
int ab_margin = 12; // educuated guess for the moment.
```

Possible improvements are:

1. Create 2 margins.

Code: Select all

```
int ab_margin_1 = 12; // reduce one ply
int ab_margin_2 = 100; // reduce one more
```