Now back to your specific example... after the first pass you would end up with 300 as the eval, whether you did it my way or the standard way. Because minimax would back scatter the 300 down to each preceding position. Now this would just be the very first baby step in the analysis of the game. What I would personally do then is go thru the game step-by-step and add alternatives at each position... I would use a simple Custom Task for this purpose... adding more alternatives at early game positions and fewer and fewer as we got closer to the finale. Then I would turn IDeA loose with its normal process, setting multiple root nodes at what I thought were interesting inflection points.
I would not end there. Periodically during the IDeA run, I would go thru the critical lines that had developed and add more Custom Tasks to beef up the alternative lists. Usually you cannot trust the alternative selection of Aquarium.
Depending on my judgement of the evaluation, I would continue this process until 20,000 to 50,000 events had been processed. All of this just to determine the proper eval of the first move! To completely eval the game much more work would need to be done. Typically by the time I finish playing a game using my methods, I end up with around a million events having been processed. Sometimes the tree gets so cumbersome that I split off and start a 2nd or 3rd tree, depends on the game.
> Here is a sample position from one of my trees. The King's Indian.
Now that's a huge tree! About how many positions total are in your King's Indian tree? Also, how big is the associated epd file? I had no idea Aquarium would be stable with trees that big.
I do not save the epd files. Maybe if I had, I could reconstruct damage done to the tree more easily. The Aquarium verify and recover routines are not able to detect the damage to the tree. I only find it when I uncover a missing sub-tree.
Notice the 'N' column and the rather large numbers there. I have analyzed this opening in great depth, not as great as the Najdorf however. Aquarium says that I have spent 250 CPU days on this opening... but that is incorrect. During various upgrade cycles the CPU time counters were reset. I don't actually know how much CPU time is invested here. But it is a substantial amount. I have several games currently active in this opening, against IM and SIM level opponents. Most of the GMs I have played avoid this and go for a Nimzo Indian.
I have a slight "-" score in this opening, its big advantage is that it is almost always decisive. However, I do have some draws with it as well.
"What I would personally do then is go thru the game step-by-step and add alternatives at each position..."
So step 2 of the process is to analyze all of the positions that you didn't want to be analyzed in step 1.
But the alternatives at each step will definitely need to be evaluated. All is lost otherwise. It has ever been thus.
It is what makes this position so attractive. The engines can't seem to get it right.
I think we all develope our own process when analysing. Assuming your working process I have no doubt it would help you a lot but accordning to my working process it wouldn't.
Seems good to be able to choose option. Really a pitty that the possibility already is available but is not working due to a bug.
Perhaps now when Aq is rather stable they will get more time to take care of bugs and the interface.
I have a few questions.
a) Why do you seem to run everything from Sandbox; what is the point, you have your games in your game Database, why not go from there?
b) Why do you "delete the infinite analysis tree routinely" ?. I would have thought that would be something to keep.?
c) Does any of the settings for IDeA work in the "Advanced Engine" panel, if so which?
a) everything can be done from the Database window and like you I do not understand why some choose to switch to the Sandbox.
b) in older versions of Aquarium deleting infinite analysis helped with stability for some using short time or low depth settings. However I think that is no longer an issue and I agree with you that the IA data is well worth keeping.
c) all the settings in the advanced engine panel work. Perhaps the most useful is the fourth, “Add analysis to IDeA tree and generate alternative tasks”. I think this is the point Dadi was trying to make to Pawnslinger earlier as it already provides the feature that he is asking for.
The reason I delete the IA tree... not for the reasons you listed. I don't use it because I don't see the point of it. It consumes time to update and maintain (and disc space). So I get rid of something that I consider a waste of space and time.
All settings in the Advanced Engine panel work... if you don't mind the bugs. That is the +-300 problem with any option that allows the direct entry of engine analysis into the IDeA tree. Once the +-300 is in the IDeA tree, it can be hard to find, hard to fix and yet has a severe impact on the integrity of the tree. For all I know I still have the 300's stuck in my trees from the limited test that I gave it. I still run across them from time to time. But it is becoming a rare event... a small blessing.
I don't think you really answered my questions; more a case of agreeing with me, or having the same point of view!
As for IDeA now being more stable, I agree 100%
>many lost Databases when I tried it.
Much the same with me with IDeA?!
I know you use it a great deal (IDeA) but even now,(much more stable) it STILL has faults. How many years will it take them to get it right?!
It is a usable tool. I use it a lot. I like it, but I always have wishes for the future. Personally, I am giving Aq 2018 a skip. For many reasons, not the least of which is that ChessOk has not done much of a sales job. In the current environment, it is not enough to just produce a new version with no details and expect me to buy it. Sorry ChessOk... maybe next year (or not).
So far, Dadi is the only one that has offered any reason to upgrade. That was his comment concerning the continuing I/O improvement. I applaud this improvement, but at a time when I have just upgraded from mechanical disc to SSD... it does not mean as much to me as it once did. The I/O usage of Aq 2017, which I use, is very low, even with 4 copies running against the same SSD simultaneously.
I have a tree configuration window with columns for IDEA analysis, infinite analysis, a color coded tree with my repertoire, and columns that show the number of games with that position in various databases. Also a big board window, an IDEA tasks window, a Project Status Window, and an Infinite analysis window.
All open at the same time.
Can you open a tree configuration window in the database section?
Dickie: is that 4th setting the one you use?
My impression is that over the years, at least for heavy IDeA users with long analysis settings as Carl recommends, the consensus on this board has been that the 2nd setting was best: "Send positions from analysis line into IDeA"?
Also: "In practice the pv lines produced by IA can be pretty suspect beyond the first few moves. Sometimes even the second ply is not optimal."
From Dadi's article, I have internalized the injunction to always send ia analysis to the IDeA queue of the project linked to the database game. Are you saying, or implying, that when doing that, one should not use a "normal" ia depth of, 40 ply for example, but rather only 2 ply? How else would one avoid the issue to which you refer "beyond the first few moves"?
For me, mainly relying on IA, the above demands the most work from me. It is very often even the 2nd ply isn’t “the best”. I always run IA on at least the the 2nd ply as well before I go down about 10-20 plies and start IA again and then backtrack running IA every second move until I am back at my first play.
In between I let IDeA analyse the positions IA sent to the IDeA-queue. Perhaps I should in one of the cycles “Add analysis to IDeA tree and generate alternative tasks”. Currently I always run with the option “Send positions from analysis line into IDeA”.
That leads to the second question, how long a pv is it sensible to send to IDeA. There is no good answer because the quality of pv’s beyond the first move is so variable. I keep it fairly short because I try to avoid injecting “noise” into my trees. I like my trees to be as sleek and efficient as possible. I am currently on vacation so do not have access to Aquarium, but somewhere in the settings you can create a threshold in terms of minimum analysis time and minimum depth. So for instance if the minimum depth is set to 35 and you have an IA depth of 40, then only the first 5 moves in the pv (40-35) are sent to IDeA.
I would be interested in other forum member’s views, perhaps we should start a new thread. I find that even though I have used Aquarium since its inception, I am still learning!
"somewhere in the settings you can create a threshold in terms of minimum analysis time and minimum depth. So for instance if the minimum depth is set to 35 and you have an IA depth of 40, then only the first 5 moves in the pv (40-35) are sent to IDeA."
It is unclear how to do this. 1) For each IDeA project, in Edit/IDeA Project Properties/Common/ at the bottom of dialog, one checks "Insert infinite analysis from linked games." Then pick sample settings of "Min. time: 30 (seconds); "Min. depth: 35 (plies)". Presumably that is the "minimum depth" to which you refer.
As for having an "ia depth of 40", I don't see a setting, but rather one runs ia by hand in Database window until one gets to a depth of 40 ply, when the pv data is sent to IDea queue either automatically (since ply is greater than 35) or manually be right-clicking active line running in "analysis" pane.
pick a setting of "Min. time: 30 (seconds); "Min. depth: 37 (plies)"?
I wish that the alternative generation scheme used by Aquarium was better! Aquarium spends A LOT of time running down the wrong, and obviously to me wrong, alternative. So I spend a very great amount of time going thru my trees adding alternatives before Aquarium goes off TOO DEEP on a bad choice.
This could be solved to a very great degree if Aquarium would do 1 thing better... seed new leaf nodes (or nearly new ones) with a bunch of alternatives. Just simply put a goodly amount of likely alternatives into these nodes, so the prolongation cycles have some chance at decent alternatives early on.
Use a tree generation strategy that generates however many alternatives you want.
Apply it to "the rest of the line" in the custom task menu.
It will go down whatever line you are currently analyzing and add alternatives wherever there are less than the number you specify in the strategy.
Here is an example of what I run across all the time... from my Kings Indian tree:
This shows how the tree put a lot of work into 1 leg of the tree before even looking for any alternatives.
This provides decent alternatives and also fleshes them out a bit in terms of downstream potential.
Since we are in a wishes for Aquarium 2019 thread, I will throw one out there:
It would be nice to create custom tasks or tree generation strategies that run IA with specified parameters on each position that the task is assigned to or generates on it's own.
Your idea about using the IA in multi-variation mode is good. I use it in the Sandbox, I did not think it would work with IA in the IDeA though (the last time I tried that it crashed). Speaking of which it would be nice if the IA had "cloud" features, like Chessbase does. Also it would be nice if the IA in IDeA would "track" or "lock" as Chessbase does. Chessbase has some nice IA features that would be easy for Aquarium to add.
Hint 1: Pawnslinger leaves out an important piece of information about the position.
Hint 2: Aquarium trees are not trees in the mathematical/graph theoretical sense.
Those who crack this will learn a lot about IDeA and Aquarium trees.
If needed, I may explain this in a couple of months when I have more time.
In this particular case, this tree is running on "Full Subtree Power", I left out that tidbit also.
But what I did include is something that I find particularly annoying when I find it... a tree node with too few alternatives, and alternative generation delayed whilst Aquarium pursued other options (like prolongation). The tree shape was also not mentioned. In this case though it is a mature tree with more than 3 million nodes, and the tree shape has changed over time. For the last few months, I have been using "Default". But a fair amount of work was done with "Moderate" and "Tactical". And some I think at "Wide". Also, this is an opening tree and this position occurs well into the opening variation.
I find that generally what happens is that in mature trees I have a tendency to set the search bounds low, so that I don't get flooded with too many alternatives. I don't like to have more than 2k alternatives in one cycle. Well, this means that many nodes suffer because they don't get the chance at alternative generation... or it is delayed. As is the case here. So it is the devil's choice. Wider search bounds, wider trees with more alternatives. A simple formula, no secret... and perhaps, normal.
In fact, I will grant you that what I showed is perfectly normal.
And that is the problem. It is normal.
Thus my suggestion. I believe Aquarium would benefit, if it was able to run a Custom Task to generate alternatives (as the player desires) upon creation of a new leaf node. This would help, I believe.
I think most of what you are asking for might be doable with a tree generation strategy.
It would not be entirely automatic, as you would have to select which lines to apply it to.
How many alternatives do you want on each node in any given line that you will select by hand?
Do you want no prolongation of the alternatives, linear prolongation to some number of ply, or branching prolongation to some number of ply with some number of branches per ply?
Do you want all of the alternatives generated no matter how bad they are or is there some centipawn number that you will use to cut off additional alternative generation if an alternative is generated that is worse than the best one on that branch by the given number?
I will write the appropriate strategy for you and help you get started with it.
Thank you for your offer. I am not sure what a "tree generation strategy" is.
I want to catch new leaf (empty) nodes, as they are first created and seed them with a Custom Task. I endeavor already to do this manually, by traversing the critical lines in the tree until I find an empty node and then I run a Custom Task to populate it. I vary all of the parameters of Custom Task (old style) as I feel is appropriate. Commonly I ask for at least 3 alternatives and possibly as many as 16 depending on where the position is in the variation. Sometimes I find a leaf node very close to the start of the variation and I have asked for as many as 20 alternatives. Usually with auto-plies set to 1, but I have used up to 3 on occasion. I don't really like auto-plies because it does not generate alternatives. I usually use -+250 for the bounds, but that can be much bigger as seems appropriate. Ply depth is usually set to the normal for the tree, but I have used higher ply depth, again, as seems appropriate for the tree. I do this over and over and over. Searching for nodes that are important to the tree and running Custom Task to get a decent number of alternatives populated as early as possible. For large trees, like my Kings Indian in the example, it is a daunting task.
There will always be new leaf nodes with questionable evaluations until someone provides a complete mathematical solution to the game.
IDEA already detects and expands upon them.
It seems what you are asking for is to customize the behavior by which automatic expansion selects and prolongates alternatives.
That is certainly a worthy wish for AQ2019.
GM Kotov, in his book "How to Think Like a Grandmaster" (a book that I like a lot) describes the process of selecting the candidate moves. And this is an extremely important step. All future analysis is based on this. Go wrong here and you end-up paying dearly later.
That was a fabulously helpful post.
More to the point and on topic, the reason why automatic expansion creates inefficient and bloated trees is because it spends such a small amount of time selecting alternatives.
Based on the text it uses to report activity it seems like maybe 1 second per position.
I switched to using the IA engine for alternative generation because I can choose how much time it spends on a position and the number of simultaneous alternatives that it searches for.
Allowing a configurable parameter for how much time automatic expansion spends to determine each alternative would be a simple and powerful way to improve the quality of the automatically generated trees.
The feature that Pawnslinger has been pining for where you can select the number of alternatives generated at each leaf node on every iteration of alternative generation would also be quite useful.
If this is generally the case, and I may have the details wrong, but I think something close to this is how it works... then it guarantees that the alternative selection process is quick and bad. Overall I am of the opinion that if the alternatives were selected with more care (more time), then better alternatives would be selected to start with and then Aq could spend its time evaluating a decent set of reasonable moves. As it is now, Aq often spends a great deal of time running down "blind alleys".
Under the best of circumstances, this is somewhat unavoidable. And the sharper the position, the more critical this problem becomes. And the sharp positions are the really important positions.
His method is to first make a list of every reasonable candidate move, and then examine each in turn by first making a list of every reasonable response by your opponent, and then calculating the likely results of each reply to each candidate move.
This methodology has fallen by the wayside in human competition as modern tournament play has trended towards ever faster time controls, but it is still perfectly viable for computer analysis.
Note that this is very different from how automatic expansion works in IDEA.
IDEA picks a single candidate move (alternative) for each position and "prolongates" it.
Maybe the next candidate move is at the root, or maybe it lies somewhere on one of these extended branches.
That depends on the mysterious "tree shape" parameter and some random numbers.
I'm not really sure how it all works, but it's more like organic tree growth than a systematic analysis of all reasonable candidate moves.
I'm not saying what IDEA does is bad.
It's a kind of compromise between the single deep lines of infinite analysis and the overly broad method of brute force.
I tried to get closer to Kotov's method with a tree strategy called Tabiya Sweep that I posted up somewhere on this forum.
It takes a long time and generates enormous shallow trees with dense transpositions.
I use these trees to understand move order subtleties in openings, or chose lines in true tabiya positions where the databases contain a bewildering number of options.
Also to prepare against human opponents who routinely play sub-optimal moves.
A quicker way to identify all of the reasonable alternatives is to run infinite analysis in multivariation mode with something like 9 simultaneous lines and send them all to the IDEA queue, but then you are faced with Pawnslinger's Paradox of how to find all the bad leaf node evaluations.
I'm actually glad there is no easy answer to Pawnslinger's Paradox, because if there was then chess would no longer be a game, it would be a math problem that was solved by computers.
I like Aquarium because Aquarium itself is a game to be played and tweaked and optimized.
> The time spent selecting alternatives seems to be relative to the the project analysis quality setting, which I think is reasonable.
The Analysis Quality Settings you choose apply to all positions that are analyzed. It doesn't matter if IDeA is extending a line or generating an alternative. You can easily check this by clicking a task in the Task Queue (in the Stage Status window). The "Task settings" field displays the analysis settings for the task.
The exception is 7-piece endings where IDeA can automatically check the online Lomonosov tablebases and no analysis time is required.
However, the analysis time is influenced by
time_tuning. It has been improved in Aquarium 2018, so the very short analysis times seen in earlier versions are rare. Still, IDeA doesn't spend much time on positions with a forced mate.
All this means that it's entirely up to the user to choose sufficient time for analyzing alternatives. Bad alternatives will not be analyzed as deeply as the mainline (due to
time_tuning), but even that can be changed if you like.
The point is the amount of time IDeA gives to the alternative SELECTION process... not to the evaluation of the selected alternatives. By examination of the IA column, we can see how deeply IDeA has looked into the potential alternatives. Typically 10 or 12 ply is all I see. Whereas the selected alternative is evaluated to the full user indicated depth. In my case usually something in excess of 20 ply.
The problem being that the selection of alternatives deserves more time and care, but I see no way to affect that selection process.
At least not in any direct and clear way. I try to affect it by use of Custom Tasks, the Custom Task seems to do a better job of alternative selection. Also quite useful is the Multi-variation mode of the Sandbox. Both of these are good ways to generate candidate lists.
If this is the case, then selection of alternatives and prolongations in IDeA are managed by one's selection of two parameters: "Tree Shape" & "Tree Width". In which case, we should have been discussing on this board for the last 5 years what combination of those two parameters are appropriate for each type of position.
The above is what I wrote in another thread but would apply here it seems.
Powered by mwForum 2.27.4 © 1999-2012 Markus Wichitill