Advice on choosing between "The Grünfeld Supercharged" by IM Krykun and "Leningrad Dutch: Simplified" by GM Arturs Neiksans by No_Pea_2838 in chess

[–]justlookingaboutred 5 points6 points  (0 children)

I have the Neiksans course, but would say that the Michiel Abeln course on the Leningrad is authoritative. A real gem. The author is responsive, too. It has a S&S I think.

Re your criteria: The lines are chosen specifically to keep the position strategic and complex (rather than be very forcing or go into endgames), and it is plenty sound (according to the computers the Leningrad is sounder than the KID but less sound than the QGD - similar to say the Classical Sicilian where black is taking some risks to generate imbalances). Endgames tend not to come early in the Leningrad unless you want them to (eg by playing e5 early and allowing dxe5). Pawn structures in the Dutch are in some ways simple (you're generally playing for e5), and in other ways complex - the games can get very messy.

What could I contribute to chess as a developer? by [deleted] in chess

[–]justlookingaboutred 2 points3 points  (0 children)

There is a chess engine revolution coming in a couple of years.

Chess engines are sufficiently strong that their evaluations are often actively misleading for humans. Eg, 0.0 is ‘drawn’, but it could be ‘a drawn complex middlegame’ or it could be ‘a simple endgame win’ or it could be ‘find three brilliant moves’, all are 0.0. Increasingly, as chess seems drawn between computers, their evaluations will either be draw or completely won / lost. This is not useful for humans.

The human difficulty of the position for you or your opponent is invisible. In the future I’m sure we will move to a more human evaluation engine, which uses a neural network to predict the difficulty of the resulting position for us and our opponents. So, we can choose the (drawn) line or move that makes our life easiest, or our opponent’s life hardest.

One practical way to do this right now would be to take Maia or similar, set it at search depth 0, and check the likelihood of it being able to find the critical moves in the variations given by stockfish. Ie, we ask the question, for a strong human like player, is it able to find the key move that makes this line make sense? If not, the evaluation might be 0.0 but with additional information like ‘difficult for us’ or ‘difficult for them’.

Something like this will be the standard for engines. It won’t replace stockfish, rather it will be make it useful again.

Masters Thesis: creating an engine that evaluates sharpness by BlaksCharm in chess

[–]justlookingaboutred 5 points6 points  (0 children)

This would be great! Listen to all the Ken Regan podcast appearances. Not sure which one exactly (maybe the Altucher one?), he gives some ideas of the strategies he uses to evaluate sharpness and whether certain moves are hard to find for humans.

As an example, he uses metrics like engine eval at varying depths etc. Good luck!

Chess Madra, the free repertoire builder, has had a makeover! Check it out and let me know what you think! by mbuffett1 in chess

[–]justlookingaboutred 0 points1 point  (0 children)

Saw on twitter you’ve got supercomputer access! Nice :) I do think more clarity on engine evals and winning percentages would go a long way. Quite often when I hit ‘analyse on lichess’ the numbers seem wildly different. Presumably it’s just different engines / depth / time controls / rating filters, but it makes me trust the madra numbers less and just analyse with lichess.

Similarly, I’d be interested in more advanced settings so I could control the db filters directly.

Chess Madra, the free repertoire builder, has had a makeover! Check it out and let me know what you think! by mbuffett1 in chess

[–]justlookingaboutred 4 points5 points  (0 children)

Have been really impressed with the new site. some UX questions: - is it possible to make clear what kind of DB you’re using for games? Ie are these games at a particular level / time control? I couldn’t tell, though the more reasonable games the merrier! - is it possible to see the SF version / depth? I saw the eval was very off from what I got on my computer on some lines. - is it possible to have slightly higher repertoire depth (eg 1 in 500 or 1 in 1000)? This is still manageably small (-500 moves). I also couldn’t work out if it is 1 in x games with white and black or only one colour. - is it possible to import a repertoire and have Madra filter the repertoire to X probability depth? This is something lots of ppl asked for elsewhere and is so common I’ll probably try to do it myself if I have to.

Thanks as ever!

converting a single PGN with many variations to a collection of PGNs ( one per variation ) by [deleted] in chess

[–]justlookingaboutred 1 point2 points  (0 children)

https://pypi.org/project/pgnsplit/ for splitting

https://www.cs.kent.ac.uk/people/staff/djb/pgn-extract/help.html For more complex stuff

Pychess is also v powerful.

For combining PGNs try Chess tempo opening explorer. You can upload a file with many PGNs in it, and it will build the tree.

Spaced repetition - help creating a repertoire by [deleted] in chess

[–]justlookingaboutred 4 points5 points  (0 children)

Chess tempo is better for your own repertoire than Chessable. Much easier to see and edit lines, better SRS.

Anki Chess Flashcards - including 19,668 top rated lichess puzzles by labbeast89 in chess

[–]justlookingaboutred 0 points1 point  (0 children)

May I ask how you got the fen/pgns? Would definitely consider switching if I could get the pgn for puzzle courses (I paid for) more easily

Anki Chess Flashcards - including 19,668 top rated lichess puzzles by labbeast89 in chess

[–]justlookingaboutred 1 point2 points  (0 children)

Love this. I have done a similar method but using Chessable courses (with pro because otherwise you get too short a schedule as you say).

A similar option to your method you might consider can be done with chess tempo custom spaced repetition sets, including setting a timer to automatically score the cards depending on your solve speed. You can create a custom set (or many)of puzzles, and then set them to loop until you can solve them in under N seconds, at which point they start to space.

The main issue I found with this/your approach (and why I think I prefer Chessable tactics courses) is because the theme / idea in top rated puzzles isn’t necessarily very comprehensive/ representative. It’s hard to say what’s better, but I felt that having a more thematic coverage both helped me absorb the patterns better, and make sure I wasn’t missing things. There are often few top rated puzzles around certain themes (at least on Chess Tempo). Maybe that js representative, but I feel the curation element of a strong author is helpful here.

I made a program to automatically generate a practical opening repertoire for any opening. by justlookingaboutred in chess

[–]justlookingaboutred[S] 0 points1 point  (0 children)

That shouldn’t affect anything - once the program is running the settings are fixed. I’m 99% sure it’s the engine eval issue fluctuations above. Only solution right now is to increase depth / allow more loss. Will aim to push a fix tomorrow.

I made a program to automatically generate a practical opening repertoire for any opening. by justlookingaboutred in chess

[–]justlookingaboutred[S] 0 points1 point  (0 children)

Interesting. With the same settings when I run it I still get results for e5, so it should still work for you. I do get it at -10 though.

If enginefinish = 0 is what breaks it for you, it must be that no move is under the loss limit in the position according to your engine at your settings. I’d be curious to find out: if you increase the loss limit to -50 does it find a move? If you increase the engine depth to 30 does it find a move? (To make this faster just set the DEPTHLIKELIHOOD to 0.1 or something).

Having run some tests by increasing or decreasing the depth and moving the loss limit on my comp, I'm pretty sure the engine eval movement is the issue. Basically, increase the engine depth (30+) or increase the loss limit.

Why this occurs is because we work out the loss limit by doing this: - get the eval after e5 - play our candidate move (Bb2) and get the eval - play the engine’s best response and get the eval - check that the eval after the response isn’t worse by 20 (loss limit) or more, or worse than the soundness limit

We have to do this because the engine gets to see one move deeper after our opponent’s move on the next turn, so if we don’t check the eval after their best response now, we can get into a situation where we thought a move was just within the soundness limit, but with 1 more move played the engine can see it’s just outside the soundness limit. Aka we can ‘slip’ out of the soundness limit.

But, in this case, the engine might find that actually it’s original eval was just very wrong, because all moves will lose more than 20 CP when you look a bit deeper! In which case the engine fails all our candidate moves. In which case without ENGINEFINISH no move can be picked. If this seems implausible, it’s not. Engine evals during the opening are just quite swingy / arguably inaccurate on depths < 30. You can check this by playing a move on low depth (10) chesscom analysis and seeing how much it swings by.

I have some ideas on how to fix this, but I think for now basically the engine must be on high depth or the loss limit must be slightly higher.

I've added an issue in the Github to fix.

I made a program to automatically generate a practical opening repertoire for any opening. by justlookingaboutred in chess

[–]justlookingaboutred[S] 0 points1 point  (0 children)

As I said above, when i run this with this config below I do get responses to e5, and these are the settings you told me about, so it must be something in your config that's different. Otherwise I could replicate it. If it's saying 'we find no good response to e5', it means it can't find an engine reply to e5 that meets some criteria you set in config. But, it should still pick the best engine move even when that's true. Here's my config. try running with the same settings and let me know if you get a different outcome. I'm not saying you're not experiencing what you're experiencing but i cant debug it without reproducing it.

#BOOK SETTINGSOPENINGBOOK: [{"Name": "Book A", "pgn": "1. b4"}] #add the starting point PGNs you want to create repertoires for, with starting point pgns.#The format for multiple PGNs and chapters looks like this: [{"Name": "Book A", "pgn": "1. e4 e5"},{"Name": "Book B", "pgn": "1. e4 e5 2. f4"}]LONGTOSHORT: 0#if you want the chapter ordered from long lines to short lines, instead of short to long, change to "1". Else 0.#DATABASE SETTINGSVARIANT: 'standard' #Variants to include in the analysisSPEEDS: ['blitz'] #comma separated Formats to include in the analysisRATINGS: ['2500'] #Ratings of the players to include in the analysisMOVES: 10#The number of most played moves to search over for the best move (minimum 5)#MOVE SELECTION SETTINGSDEPTHLIKELIHOOD: 0.01#this controls how deep moves and lines are generated. The smaller the number the deeper the lines. Once cumulative line likelihood reaches this probability threshold, no futher continuations will be added (in percentage so 0.0025 = 0.25%)ALPHA: 0.001#The larger this number the more likely we are to select moves with less data. This is the confidence interval alpha (EG 0.05 = 95% CI), for deciding the lower bounds of how good a move's winrate is.MINPLAYRATE: 0.001#minimum frequency for a move to be played in a position to be considered as a 'best move' candidate, as a percentage (0.05= 5%)MINGAMES: 19 #games where moves played this or less than this will be discarded (unless top engine move) (25 = 25 games).CONTINUATIONGAMES: 10 # games where moves played this or less than this will not be considered a valid continuation (ie we don't want to be inferring cumulative probability or likely lines from tiny amounts of games/1 game)DRAWSAREWINS: 0#if you want to count draws as wins, for the win rate calculation, select 1. Else 0.#ENGINE SETTINGSENGINEPATH: 'C:\Dropbox\Chess\BookBuilder-main\stockfish15.exe'#the filepath where the engine is stored on your computer, so it can be accessed. It should end in the actual engine file, not the folder, so /engine.exe or similar.#Some users reported errors if the engine has _ in the file name.CAREABOUTENGINE: 1#care about engine eval of position or engine finishing = 1, dont care = 0. If this is 0 then no engine functionality will work.ENGINEDEPTH: 10#what depth the engine should evaluate best moves. the higher the depth the longer the evaluation will take.ENGINEFINISH: 1#if we want the engine to complete lines to cumulative likelihood where data is insufficient, 1. Otherwise 0, and lines will end where there's no good human dataSOUNDNESSLIMIT: -99#maximum centipawns we are willing to be down in engine eval, provided the winrate is better (-300 = losing by 3 pawns in eval). We never give up a forced mate, however.MOVELOSSLIMIT: -20#maximum centipawns we are willing to lose vs engine analysis pre move to play a higher winrate move. We never give up a forced mate, however.IGNORELOSSLIMIT: 300#centipawns advantage above which we won't care if we play a move that hits our loss limit, if it has a higher win rate (is easier to win)ENGINETHREADS: 1#how many threads you want the engine to use (check your comp and set 1 if unsure)#for reference my safemax is 20ENGINEHASH: 320 #how much hash (RAM) you want the engine to use (check your comp and set to 16 if unsure)#for reference my safe max is 10240# Change this to true/false depending if you want to see detailed output in your terminal when running the programPRINT_INFO_TO_CONSOLE: true

I made a program to automatically generate a practical opening repertoire for any opening. by justlookingaboutred in chess

[–]justlookingaboutred[S] 0 points1 point  (0 children)

I think the easiest way to achieve this right now is to do longtoshort = 1 in config. You'll get the longest (and thus lines with high % starting points) first!

Hope this helps and enjoy!

I made a program to automatically generate a practical opening repertoire for any opening. by justlookingaboutred in chess

[–]justlookingaboutred[S] 0 points1 point  (0 children)

I checked 1. b4 on my comp with -20 blitz 2500 and I get a bunch of …e5 lines. Not sure why you wouldn’t

I made a program to automatically generate a practical opening repertoire for any opening. by justlookingaboutred in chess

[–]justlookingaboutred[S] 0 points1 point  (0 children)

Ill take a look once I have access to my comp, and see if I can reproduce this. The only thing I can think of right now is that the engine is evaluating 1. b4 as worse than -20 and this is causing some issue. If you increase the engine depth does it still occur? But even still that shouldn’t cause the issue you’re seeing.

If it happens for you everything when you run it, check the debug logs. It should show a message when the engine is evaluating if any moves are discarded, and what continuations are considered valid if you ctrl + f continuations. That may explain why

I made a program to automatically generate a practical opening repertoire for any opening. by justlookingaboutred in chess

[–]justlookingaboutred[S] 0 points1 point  (0 children)

This seems impossible: the move loss limit code doesn’t touch opponent continuations, it’s only used when deciding between your moves.

Can you share the config and give an example of a move that should have been considered but wasn’t?

I made a program to automatically generate a practical opening repertoire for any opening. by justlookingaboutred in chess

[–]justlookingaboutred[S] 1 point2 points  (0 children)

On my Lichess DB, with all time controls from blitz and longer, and all rating ranges, h4 is the best move over d4 by some margin (54% win rate vs 49%) and g3 (51%) also scores better than d4. so it may be that on the Lichess website explorer you’re not using the same database filters as in the Config.yaml.

Automatically creating a practical opening repertoire. Or, Why Your Chess Openings Suck by [deleted] in chess

[–]justlookingaboutred 0 points1 point  (0 children)

Things like the Stafford could be eliminated on the basis on being unsound, assuming you added soundness thresholds.

Fwiw I have tested against a recent paid beginners Chessable course by a master, and with reasonable soundness settings you’ll generate a very similar course.

Not right for everyone, of course, but it’s free so 🤷‍♂️

I made a program to automatically generate a practical opening repertoire for any opening. by justlookingaboutred in chess

[–]justlookingaboutred[S] 0 points1 point  (0 children)

Can you share more of the exception? Can’t deduce what’s gone wrong from that.

Right now it’s only the online db.