![]() |
||||||||
![]() ![]() Order any two training programs in our online chess shop and get a third training program absolutely free. If your order is more than $120 / €100 Euro, you will get additional present. New CT-ART 5.0 combines three excellent courses guiding you from beginner to advanced level. |
||||||||
ChessOK.com » Aquarium 2016: Tree Generation Strategies | ||||||||
Aquarium 2016: Tree Generation Strategies
02 June 2016
IntroductionAquarium 2016 introduces Tree Generation Strategies (TGS) in IDeA. Similar to Custom Tasks in previous versions this new feature generates a subtree of analyzed positions, starting from the current position. However, instead of manually setting the parameters every time you run a Custom Task, you pick a Tree Generation Strategy from a dropdown list. This means that it is very easy to use, but advanced users can also define their own or modify existing strategies. Besides being easier to use, Tree Generation Strategies are more flexible than the older method offered by Custom Tasks. A set of branching factors/evaluation windows can be specified for each ply. The branching factor is reduced if the evaluation of any of the alternatives is different from the top choice by more than the smallest evaluation window for the given ply. After that a second pair of branching factor/evaluation window (if specified) will be used etc. until the evaluation of an alternative falls outside the biggest evaluation window or the branching limit has been reached. This gives finegrained control over the branching factor at each ply, depending on how much the evaluation of alternatives differs from the top move.
The generated tasks are analyzed by the IDeA engines and the results of the analysis are added to the project tree like all other IDeA analysis. Less time is spent on analyzing inferior moves (based on the parameters defined in time_tuning.xml) and bad lines are not extended. Tree Generation Strategy doesn’t interfere with other types of analysis. You can run infinite analysis at the same time, automatically sending tasks to the analysis queue (or directly to the project tree) or manually add positions that you want analyzed — and your IDeA analysis will of course continue normally. You have the same flexibility in choosing analysis quality as you do in IDeA. By default the project’s time/depth (and Wait for next depth) combination is used, but you can also choose a different analysis quality for the tasks generated by the Tree Generation Strategy. Using TGS with infinite analysisThe complete control over the shape of the tree is not only of interest for normal IDeA analysis. Users who limit themselves to infinite analysis can take advantage of this feature without activating automatic tree expansion. They can, for instance, use a strategy with a low branching factor and long lines using powerful multithreaded engine(s) for the analysis. That is, of course, equivalent to normal infinite analysis, but with automatic guidance through a predefined Tree Generation Strategy, instead of having to guide the engine manually through the variations. When the analysis is finished the resulting tree can be minimaxed, giving an overview of the results and pointing out the critical lines. Another option is to use a Tree Generation Strategy with several singlecore engines in order to get an overview of the possible continuations. After that infinite analysis with a multithreaded engine can be used to check and improve the lines. In both cases the results of the analysis can be automatically stored in a project tree. When you return to the same project at a later date, the results will be displayed automatically in the tree window. Examples![]() Example 1: The graphic shows the evaluation window / branching factor for ply 2. Up to four alternatives will be generated within an evaluation window of ±0.4. If an alternative falls outside the evaluation window, no more alternatives will be generated. Only the branches within the evaluation window will be extended. ![]() Example 2: The image on the left shows a more complicated example than we saw above. Here we have three sets of branching factors and evaluation windows. Eight alternatives will be generated at ply 2 as long as their evaluation differs 0.2 pawns or less from the best move. If an alternative is generated which deviates 0.20.4 pawns from the best move, then the limit is reduced to four alternatives. Finally, if an alternative is found which deviates 0.40.8 pawns from the best move, then the generation of alternatives will stop if/when two alternatives have been generated. If an alternative is encountered that deviates more than 0.8 pawns from the top choice, then no more alternatives will be created. Example 3: You want to seed a new IDeA project using your favorite Tree Generation Strategy. You might, for instance, choose a strategy which analyzes many alternatives in the root position and then reduces the number of alternatives as the variations get longer, either explicitly or by tightening the evaluation bounds. Actually, Aquarium can automatically do this for you when you start a new project and also when you add a new root to a project! Example 4: The same Tree Generation Strategy can contain different rules depending on whose move it is in the position where the analysis is started. You can, for example, have a number of alternatives generated for white, but only one move when it’s black’s move. This strategy might be useful when you are analyzing a won position. Example 5: You have already analyzed a position with IDeA and generated a tree with the results of the analysis, but you want to make sure that a critical part of the tree has been analyzed thoroughly. In this case you can use a TGS to ensure that enough alternatives have been generated and critical lines are long enough. Using Tree Generation StrategiesThe following example shows how Tree Generation Strategies are used in IDeA.
Select IDeA > Custom task. The Custom Task Properties dialog box will be displayed.
Select “Use prolongation strategy” and then choose a strategy from the dropdown list. In this example I have chosen a strategy called “tactics” and its description is displayed on a separate line: “Use this strategy to discover unexpected tactics.” When you click OK, you will see a task like “u6” appear in the IDeA task queue. The number indicates how many alternatives will be generated in the root position.
In this case a maximum of 6 alternatives will be generated as shown in the image above. One engine will generate those alternatives, but when that is done a new subtask will be generated for each of the alternatives to continue the analysis. In the example below, six subtasks were created.
This means that one IDeA engine can be assigned to each alternative, so they will be processed simultaneously and therefore much faster than if the same engine processed the Tree Generation Strategy from start to end. This process will continue and each subtask will generate a new set of tasks until the Tree Generation Strategy is completed. Note that move colors have no effect on the analysis. Besides selecting a strategy from the dropdown list, there are a couple of other important options to choose from.
The “Apply to notation” dropdown list has three options:
Rest of the line and Include variations are excellent tools to check existing variations, variations that you have picked up from books or magazines, solutions to exercises, studies etc. Selecting Rest of the line or Include variations activates the “Current side” option.
If you select “Current side”, then the selected strategy is only applied to positions where the current side has the move. In the example above I have chosen Rest of the line and “Current side.” If I start the Tree Generation Strategy in a position where white is to move, then the strategy will only be applied to positions along the mainline where white is to move. Ignore moves from notations (find alternatives) is a rarely used option, but if it is selected then the chosen strategy will only analyze alternatives that are not present in the notation. Starting TGS at an Internal NodeIt’s fairly clear what happens when you start a TGS in a position where no analysis has taken place. IDeA will follow the TGS recipe without having to consider previous analysis. However, if a TGS is started at an internal tree node, it will encounter previously analyzed positions. Let’s say that you start a TGS which generates five alternatives in the root position. If there are already three alternatives there when the TGS starts, it will add two new alternatives, at most. This means that TGSs can, for instance, be used for “padding” an existing branch, making sure that enough alternatives are generated and important lines are extended. Start of Project and New Root TGSUsually, you have to run a Tree Generation Strategy manually. However, there are two exceptions where IDeA automatically initiates their execution:
Using this feature you have complete control over the initial shape of the tree in a new project and influence the shape of the branches following a new root. If these TGSs are not found, IDeA will proceed normally without adding any predefined tasks to the queue. Creating Your Own Tree Generation StrategiesThe Tree Generation Strategies are defined in XML files which are stored in AquariumData\IDeA\Strategies . If you create your own Tree Generation Strategy, place the XML file in this directory and Aquarium will find it (no need to restart Aquarium). Let’s start with a simple strategy. We want the variations to be 3 moves long (6 plies) and choose an evaluation window of 40 centipawns. The same window is used for all plies. Here is the number of alternatives we want at each ply:
<white maxply="6" ply1="5=40" ply2="3=40" ply3="2=40"/> The first line will be used if you start the Tree Generation Strategy in a position where white is to move and the second line is used when it’s started in a position where black is to move. Besides the white / black keywords, the two lines are identical. This means that we don’t care whose move it is in the position where we launch the Tree Generation Strategy. As an example of how to interpret the elements in each line, let’s have a look at ply1="5=40" :
Here is a slightly more complicated strategy, using multiple evaluation windows / branching factors at ply 1. This example also shows what a complete XML file containing a Tree Generation Strategy looks like: <?xml version="1.0" encoding="UTF8"?> If you start the analysis in a position where black is to move, then the following line will guide <black maxply="3" ply1="6=20, 5=50, 2=100" ply2="3=20"/>
Note that alternatives with evaluation that exceed the maximum evaluation bounds for a ply are not extended. The following definition will be used when analysis is started in a position where white is to move: <white maxply="2" ply1="6=20, 5=50, 2=100"/> Note that if a specification for a ply is missing, the variation will simply be extended (without generating alternatives). In the example above maxply="2" but there is no specification for ply2 so each line will simply be extended to ply 2. If you want to specify the exact same parameters for different plies, then you can use a shorthand as shown here: ply1="6=20, 5=50, 2=100" ply2="ply1" ply3="ply1" ply4="ply1" Here, ply1 is specified in detail, but the following plies are just copies of ply1. Notes:
|
Study chess online on Chess King Learn! Time-proven training courses, thousands of examples and exercises. Start playing right now in your web browser on Chess King Playing Zone! Teams, tournaments, training, analysis and much more! Download weekly chess database updates (containing 2000+ games) with latest tournaments and games in PGN and Chess Assistant format.
|
|||||||
About - Contact Us | ||||||||
© 2008 — 2019 ChessOK.com |