• Can a bot be made to recognise various stages during games?

    From MK@21:1/5 to All on Tue Dec 13 15:07:54 2022
    If you wanted to analyse a bunch of games to
    accumulate stats on certain types of checker
    plays or cube actions at various stages of the
    game, (i.e. opening, early, middle, late, closing),
    how would you try to recognise those stages?

    Based on the average length of a large number
    of games of all types, (let's say 25-30 rolls per
    player), the first 5-10 rolls may be considered
    the opening and early stages but after that it's
    not all that easy, especially in gamblegammon
    where games can end short abrubtly.

    However, since we are talking about averages
    over large enough number of samples, would it
    still be good enough to say that? (For example,
    after 25 rolls we can assume that we are in the
    bearing off stage..?)

    How else better can this be done? Can we tell
    anything from the psition ID's? Any other ideas?

    MK

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Axel Reichert@21:1/5 to murat@compuplus.net on Wed Dec 14 13:40:07 2022
    MK <murat@compuplus.net> writes:

    If you wanted to analyse a bunch of games to accumulate stats on
    certain types of checker plays or cube actions at various stages of
    the game, (i.e. opening, early, middle, late, closing), how would you
    try to recognise those stages?

    GNU Backgammon has several evaluators, IIRC at least one for pure races
    and one for crashed positions apart from the "standard" evaluation.

    after 25 rolls we can assume that we are in the bearing off stage..?

    No. It might be a backgame or a last man hanging out for a shot etc.

    Can we tell anything from the psition ID's?

    Obviously, because it encodes the full state of checkers on the board.

    Best regards

    Axel

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Timothy Chow@21:1/5 to Axel Reichert on Wed Dec 14 08:48:42 2022
    On 12/14/2022 7:40 AM, Axel Reichert wrote:
    MK <murat@compuplus.net> writes:

    If you wanted to analyse a bunch of games to accumulate stats on
    certain types of checker plays or cube actions at various stages of
    the game, (i.e. opening, early, middle, late, closing), how would you
    try to recognise those stages?

    GNU Backgammon has several evaluators, IIRC at least one for pure races
    and one for crashed positions apart from the "standard" evaluation.

    after 25 rolls we can assume that we are in the bearing off stage..?

    No. It might be a backgame or a last man hanging out for a shot etc.

    Can we tell anything from the psition ID's?

    Obviously, because it encodes the full state of checkers on the board.

    Well, it's not possible to tell from the state of the checkers on the
    board how many moves have occurred since the start of the game. In
    theory, one could infer the *minimum* number of moves that have occurred
    since the start of the game, but ascertaining the minimum number is a potentially difficult computational problem.

    What I think Murat is asking is how to quickly process the transcript
    of a large number of games and produce several separate lists of
    positions, categorized according to type. He suggested "opening,
    early, middle, late, closing" but you could imagine wanting other
    categories, such as noncontact positions, bearoff against contact,
    backgames, etc.

    Depending on how fine a classification one wants and how accurately
    one wants the classification to be, this could be a fairly challenging programming task. Recognizing non-contact positions is fairly easy.
    (Though even the definition of "contact" can be a little subtle, as
    this article by Tom Keith

    https://bkgm.com/articles/Keith/Hyper09/index.html

    demonstrates.) If you have the game transcript, then the opening is
    pretty easy too; you just have to decide when to cut off the opening
    (first four rolls of the game, perhaps?). But other types of positions
    aren't necessarily so easy to codify into a set of simple rules that
    you can program easily.

    ---
    Tim Chow

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From MK@21:1/5 to Axel Reichert on Wed Dec 14 15:35:09 2022
    On December 14, 2022 at 5:40:11 AM UTC-7, Axel Reichert wrote:

    MK <mu...@compuplus.net> writes:

    If you wanted to analyse a bunch of games to
    accumulate stats on certain types of checker
    plays or cube actions at various stages of the
    game, (i.e. opening, early, middle, late, closing),
    how would you try to recognise those stages?

    GNU Backgammon has several evaluators, IIRC
    at least one for pure races and one for crashed
    positions apart from the "standard" evaluation.

    I don't think those will help me since what I had
    in mind is more looking back than forward.

    after 25 rolls we can assume that we are in the
    bearing off stage..?

    No. It might be a backgame or a last man hanging
    out for a shot etc.

    As a prelude to my question, I had said "talking
    about averages over large enough number of
    samples"...

    Can we tell anything from the psition ID's?

    Obviously, because it encodes the full state of
    checkers on the board.

    I'm not sure "state of checkers on the board"
    will be enough. Can you elaborate how?

    MK

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From MK@21:1/5 to Tim Chow on Wed Dec 14 16:11:06 2022
    On December 14, 2022 at 6:48:44 AM UTC-7, Tim Chow wrote:

    On 12/14/2022 7:40 AM, Axel Reichert wrote:

    MK <mu...@compuplus.net> writes:

    Can we tell anything from the psition ID's?

    Obviously, because it encodes the full state
    of checkers on the board.

    What I think Murat is asking is how to quickly

    "Quickly" is the key word that I should have used
    to be clearer. Thanks for filling it in.

    process the transcript of a large number of
    games and produce several separate lists of
    positions, categorized according to type. He
    suggested "opening, early, middle, late, closing"

    I was thinking of something like plotting cube
    decisions and cube values through the length
    of games but nothing more complicated than
    that at least initially for now.

    ..... you just have to decide when to cut off the
    opening (first four rolls of the game, perhaps?).
    But other types of positions aren't necessarily
    so easy to codify into a set of simple rules that
    you can program easily.

    I was about to suggest another, (more advanced
    but still simple to do), mutant bot experiment for
    Axel on cube skill, using approximate "cut offs"
    for my 5 stages, based on average game lengths.

    I thought I would also ask to see if anyone could
    suggest better methods to establish more precise
    cut offs but it looks like there aren't any easy ways.

    I will start a new thread to propose my experiment.

    MK

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From sebalotek@21:1/5 to All on Fri Mar 31 18:56:39 2023
    On Thursday, 15 December 2022 at 00:11:07 UTC, MK wrote:
    On December 14, 2022 at 6:48:44 AM UTC-7, Tim Chow wrote:

    On 12/14/2022 7:40 AM, Axel Reichert wrote:

    MK <mu...@compuplus.net> writes:

    Can we tell anything from the psition ID's?

    I recently tried some quick and dirty experiments along these lines.

    With the recent growing sophistication of AIs I had some hopes for automatic position ID classification (backgame, holding, racing cubes etc).

    Unfortunately chatGPT and the new-ish Google Bard both seem to misinterpret (despite their confidence voices), even when directed to the URL with explicit instructions for gnubg ID encoding .

    I have heard they perform much better at interpreting chess positions than backgammon positions. Maybe there was an element of internal human direction from the chatGPT Devs to improve performance because of the higher profile of chess.

    IMO, it will need some more specific, focussed training to become proficient at interpreting and bulk classifying backgammon positions from IDs.

    However, if this ever happens, I think it will be extremely useful.

    Does anybody have any contacts in these companies?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From pepstein5@gmail.com@21:1/5 to sebalotek on Sat Apr 1 06:39:54 2023
    On Saturday, April 1, 2023 at 2:56:41 AM UTC+1, sebalotek wrote:
    On Thursday, 15 December 2022 at 00:11:07 UTC, MK wrote:
    On December 14, 2022 at 6:48:44 AM UTC-7, Tim Chow wrote:

    On 12/14/2022 7:40 AM, Axel Reichert wrote:

    MK <mu...@compuplus.net> writes:

    Can we tell anything from the psition ID's?
    I recently tried some quick and dirty experiments along these lines.

    With the recent growing sophistication of AIs I had some hopes for automatic position ID classification (backgame, holding, racing cubes etc).

    Unfortunately chatGPT and the new-ish Google Bard both seem to misinterpret (despite their confidence voices), even when directed to the URL with explicit instructions for gnubg ID encoding .

    I have heard they perform much better at interpreting chess positions than backgammon positions. Maybe there was an element of internal human direction from the chatGPT Devs to improve performance because of the higher profile of chess.

    IMO, it will need some more specific, focussed training to become proficient at interpreting and bulk classifying backgammon positions from IDs.

    However, if this ever happens, I think it will be extremely useful.

    Does anybody have any contacts in these companies?

    In chess, the material balance already gives a lot of information about the type of position.
    For example, if both sides have one rook and a king and the only other units present are pawns, then we know it's a rook ending.
    In backgammon, the majority of games maintain a constant material balance until the no-contact phase.

    A very crude undergrad-level software development assignment which mapped a chess position to its "type" using material balance only,
    would not be wildly inaccurate. Of course, it wouldn't be able to reliably assess who (if any) had the better position.

    Paul

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From MK@21:1/5 to sebalotek on Sat Apr 1 20:06:52 2023
    On March 31, 2023 at 7:56:41 PM UTC-6, sebalotek wrote:

    On Thursday, 15 December 2022 at 00:11:07 UTC, MK wrote:

    Can we tell anything from the psition ID's?

    I recently tried some quick and dirty experiments
    along these lines. .....

    How good to see that there was some continued,
    silent interest on this topic/s from an old thread.

    Also, as soon as I saw "sebalotek" I had a feeling
    that I should remember something about you but
    couldn't; until I searched RGB for the keywords
    "sebalotek MK", which found only one older post
    that contained (among many other things) a link
    to the T-shirt you had created for me (which I still
    have in my local backgammon folder... :)

    http://i.imgur.com/axjPTgj.jpg

    As I had clarified before, I had two ideas in mind:

    1 - Plotting cube actions and cube values through
    the various stages of games, out of my curiousity
    to know when/where and how much the so-called
    "cube skill" comes into play in gamblegammon.

    2 - Improve on the very crude first "Murat mutant"
    cube experiment (that Axel had done) using a still
    very simple strategy (i.e. similar to mine, based on
    "how much checker play is still left in the game"),
    to not just do better than expected (compared to
    the mutant's cube error rate) but to do better than
    50% against the jackoffski formula.

    I had drafted an article for a mutant strategy based
    on cube actions depending on at which of the five
    basic stages of the game but I never got around to
    posting it. With my interest rekindled, I will try to do
    it soon.

    IMO, it will need some more specific, focussed
    training to become proficient at interpreting and
    bulk classifying backgammon positions from IDs.
    However, if this ever happens, I think it will be
    extremely useful.

    Can you elaborate on what you have in mind (i.e. in
    what ways it will be useful, etc.)..??

    MK

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From MK@21:1/5 to Timothy Chow on Sat Apr 1 20:25:16 2023
    On December 14, 2022 at 6:48:44 AM UTC-7, Timothy Chow wrote:

    On 12/14/2022 7:40 AM, Axel Reichert wrote:

    MK <mu...@compuplus.net> writes:

    Can we tell anything from the psition ID's?

    Obviously, because it encodes the full state
    of checkers on the board.

    Well, it's not possible to tell from the state of
    the checkers on the board how many moves
    have occurred since the start of the game.

    Axel never replied to my request of elaborating
    on what he had meant but I just thought about
    it some more today.

    Let's forget about deriving the stage of the game
    from the position ID or the state of checkers on
    the board and let's think about how else we can
    make use out of those..?

    What about the state of checkers on the board in
    conjunction with the equity and/or GMC/MWC of
    the position ID's..??

    Any creative thoughts..???

    MK

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Frank Berger@21:1/5 to sebalotek on Sun Apr 2 15:27:08 2023
    sebalotek schrieb am Samstag, 1. April 2023 um 03:56:41 UTC+2:

    With the recent growing sophistication of AIs I had some hopes for automatic position ID classification (backgame, holding, racing cubes etc).
    Do we *really* need an AI to categorize a holding game, a backgame or a racing game?

    And how do you want to train a bot on that? With supervized training you need a human to setup the training positions, which is tedious (we're not talking on a 3 digit number of examples) and with self learning (e.g. k-nearest or the like) it isn't clear
    what the categories will mean. I have tried such thing about 15 years ago, and what worked quite well on low dimensional problems, didn't work at all with BG, but naturally I could have coded rubbish and/or the HW at that time was to slow. But even then
    the categories might not make sense to humans (e.g. if you have a NN discriminating between cats and dogs, do you belive there are easy rules extractable from the net?)

    Unfortunately chatGPT and the new-ish Google Bard both seem to misinterpret (despite their confidence voices), even when directed to the URL with explicit instructions for gnubg ID encoding .
    chatGpt more or less calculates the next word by probabilities and it is absolutely amazing how well that works, but you shouldn't make the error to believe that chatGPT knows anything

    I have heard they perform much better at interpreting chess positions than backgammon positions. Maybe there was an element of internal human direction from the chatGPT Devs to improve performance because of the higher profile of chess.
    A modern chess program looks some dozen moves in the future, BG bots at most 10, having a good understanding even when looking just at the board. Which bots are then better in interpreting positions (I haven't looked deeply at Lc0 or the recent NN
    Stockfish, but it probably still holds true that 1 ply play is abysmal).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From MK@21:1/5 to Frank Berger on Wed Apr 5 20:19:59 2023
    On April 2, 2023 at 4:27:09 PM UTC-6, Frank Berger wrote:

    sebalotek schrieb am 1. April 2023 um 03:56:41 UTC+2:

    With the recent growing sophistication of AIs
    I had some hopes for automatic position ID
    classification (backgame, holding, racing cubes etc).

    Do we *really* need an AI to categorize a holding
    game, a backgame or a racing game?

    I wondered that also.

    And how do you want to train a bot on that? .....
    But even then the categories might not make sense
    to humans (e.g. if you have a NN discriminating
    between cats and dogs, do you belive there are
    easy rules extractable from the net?)

    What about not training the bots to categorize
    positions but making them recognize certain
    patterns, "spectrums" in series of positions from
    analysing already played games for any possible
    purposes as they had been discussed in these
    long threads with many other participants:

    https://groups.google.com/g/rec.games.backgammon/c/oxmW6YoyTsM/m/2dq6X1yoAQAJ

    https://groups.google.com/g/rec.games.backgammon/c/Kxd9V4OA4PY/m/1mA7liVhCwAJ

    https://groups.google.com/g/rec.games.backgammon/c/8bYqsL4BTjM/m/9QUkGqvnAgAJ

    Perhaps you two hadn't participated in those
    past discussions because the subject wasn't
    interesting enough for you or the concept was
    above the heads?? It's never too late... ;)

    MK

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)