/r/cbaduk
Everything related to the usage of computers for the game of Go: from game databases to development of Go-playing AI.
Welcome to r/cbaduk subreddit devoted to everything related to the usage of computers for the game of Go: from game databases to development of Go-playing AI.
To discuss the game itself, please go to r/baduk.
(Upcoming) wiki: https://www.reddit.com/r/cbaduk/wiki/
/r/cbaduk
Don't mind which language, just want to feed in an image of an IRL goban and get data of the board state.
[EDIT] I'm sorry, I'm just stupid. Only after posting this it occurred to me: In case of no captures the N of stones should equal N of moves. So then only counting the N of stones on the board actually accounts for the captures by virtue of net difference in N of stones between the players... Not sure if I should leave the post or delete it
Hey there!
Anyone here who's read this book? I've just started, but now trying to implement scoring, but I can't find either in the book or on the GitHub repo (link) any implementation of scoring prisoners/captures. What? I'm totally confused.
So the scoring works like: 2 random bots playout games till there's no other legal moves except filling their own eyes (even eyes being single points surrounded by one color). Then it counts the territory and number of stones on the board but if in the process one player captured any amount of opponent stones it does not record that... This description is totally accurate as there are few different versions of the program depending which chapter you're reading, but NONE of them account for prisoners and literal captures whatsoever. Does that not matter at all? How useful is that bot then?
Apologies for the little rant, but I'd love some insights on this from someone who's read the book and understands this.
I'm trying to make a Go engine running completely on blockchain (personal pet project).
I'm struggling a bit with the scoring algorithm. I want players to mark dead/alive groups, and count the score based on that. However, even this doesn't seam to be that simple (for cases like seki).
Any help/advice on the scoring the board programmatically is welcomed.
Here is simplified version of the data structure and algorithm that I used so far:
Board: matrix with values: Empty, Black, White
Scoring State: matrix with values: AliveStone, DeadStone, Neutral, TerritoryBlack, TerritoryWhite,
Assuming the game is properly finished (territory well defined, no Ko-s left, dame could still be on the board). Once both players pass, I initialize scoring state in the following way:
Now, players can mark stones as dead/alive and I update the state in the following ways:
This seams to work correctly if there are no Sekis with with eyes (e.g. see ScoringIssuesInSeki) regardless of the rules (unless I missed some other special case).
This might even be fully correct for Chinese scoring, but I'm not sure if there is some corner case that I didn't consider. And it's clearly wrong for Japanese scoring.
Any advice?
Do engines these days still take as input the sequence on the last n moves? I remember it used to be last 8 moves with AlphaGo. It always seemed a bit off - the best move should be determined solely from the board state and ko state, shouldn't it?
TLDR; I need links to good practical tutorials for Katago + good GUI for analysing games, directed at non-techyy people!
Longer story:
I am coming back to go from the pre-AI (superhuman variety at least) era, and I am trying to get a grip on how to play and train with AI. I am very happy to see that there is such a lovely community of people putting time and effort into providing free and open support. But among all of these riches, I am still a bit frustrated due to the lack of informative instructions on how to actually use the programs.
On my -- admittedly very confused -- understanding, Katago seems to be a good engine, and there are a number of GUIs to connect it to. I will mostly use the AI for analysing my own and other's games, and I have heard good things about Ogatak as a GUI, but I am still rather non-committal in that regard. What I am looking for is tips (pref links) to good tutorials on how to connect Katago to a good GUI. I have a great computer, but it is a mac (M1 Max), so anything working with that is pref of course. But really, anything that can help me understand anything from how to choose network to how to actually use the GUI to get good information (I have seen amazing charts of win-percentage, estimated score etc etc) when analysing would be great.
Thanks in advance and sorry for the newbie question, but it IS confusing and google has not helped me (yet).
The link to the google drive where the weights were stored is broken.
https://drive.google.com/drive/folders/1bB8ee1wFuRWL9nPhsl4_BPUhcWSBuxO0?usp=sharing
https://github.com/pangafu/LeelaMasterWeight
tried wayback machine but no luck.
wondered if anyone has some or all of the master network weights?
Did anyone run KaTrain successfully on Mac?
I'm having the below error when running it even though I'm using the latest version of KaTrain.
ERROR: Engine died unexpectedly without sending output: status -6
I'm not using mac with M1.
MacOS is Ventura 13.2.1.
If anyone knows how to resolve this it will be much appreciated!
P.S. I tried asking on KaTrain GitHub but no solutions yet so far.
Hello everyone, I am searching for a Go library/engine/project written in C# or Java that would include a forward model so that I can use it to make an AI. Does anyone know of anything of that sort?
(The reason is that I want to test an AI that I created for a different game in Go - that AI is witten in C# and I'd rather avoid both having to migrate to a different language and coding Go from scratch.)
Let's look back at some memorable moments and interesting insights from last year.
Your top 10 posts:
I have an RTX 3060 and I was wondering if I were to program a go AI how strong could I get it using only this GPU using similar approach to modern AI (as I understand it's MCTS + neural net) ? I assume it also depends on how long you train it but I'm trying to get a very ballpark idea. Like would it take a month to get to shodan? A year? A million years?
I've been told there's some setting in the configurations to make KataGo not play the same moves in the same order like for the opening. Could anyone direct me on how to do this or where to look?
The "avoid sgf patterns" section looks right, but I don't wanna change something I don't mean to.
Was wondering if they're any AI trained with a resign neuron?
How would it affect playstyle?
Instead of hard coding a 'resign limit' (like winrate drops below 50%.)
The HiraBot 6d on KGS went off and I still want to play against it... (I have only one win against it)
So I downloaded HiraBot with the link in the profile of HiraBot43.
When I run "Hiratuka19x19.exe", it always show this notification and can't detect the NVIDIA GPU.
I have NVIDIA 1650ti and installed CUDA Toolkit 11.6 on my laptop.
How to set Hirabot to run on the NVIDIA GPU?
Ps: It runs very slowly with only CPU.
I invite you to take 45 minutes to an hour of your time to participate in a study on the game of Go and mathematical psychology.
The work aims to build and validate a particular mathematical model, for the assessment of the procedural skills used in solving life and death problems.
This model can be extended and used to build automated teaching tools.
For its validation, the participation of players is required, you could help by answering 17 tsumego in this questionnaire https://psicologiapd.fra1.qualtrics.com/jfe/form/SV_1TE2QxSgWYZZR9Y.
Thank you in advance,
Niccolò Sgaravatti
Working on a go program. Getting some duplicate hashes. I allow self-capture, so I get a duplicate board position. Not including a ko point in the hash right now.
For example, black moves in one of white's 1 point eyes and is immediately captured. Board position is the same.
How would I include the captured stones in the hash?
Do i need to include who's turn it is?
Edit: Only including board state in hash now. Only looking at simple ko now. Yes, moving in a one space eye is silly. Not doing any machine learning or detecting transpositions. Good point about not including captured stones. Was planning to add super-ko later.
This was very helpful: " You include any property in the zobrist hash the same way. You pre-define a fixed random code for every possible unique value of the property you want to include, and then in any particular game state, xor into the final hash the code that corresponds to the value of that property in that game state. ".
Code is at source forget because I got annoyed at github.
I'm looking for an open source Go server / engine. By engine I don't mean a bot to play the game, I am looking for software that facilitates a game between 2 players, handles rules, scoring etc.
Also not looking for a fully-fledged server that can handle thousands of concurrent connections or provide any sort of front end. Just something that takes a GTP connection for 2 players (or similar) and provides the game logic.
Does any such open source software exist?
I have a primitive server that allows to clients to play each other.
If the server restores an existing game. It's easy to find the moves in the recorder and send them to each client. However, the SGF board size command is not a move, so that needs to be extracted and pushed to the clients.
I wonder if there is other information (from the SGF nodes) that is needed? In my case, my program allows for unusual go boards, so I need to extract that information also and send it to the clients.
Does anyone have any experience with this?
Let's look back at some memorable moments and interesting insights from last year.
Your top 10 posts:
I have a java based go program (not an AI) that plays on unusual goban topologies and shapes.
You would need to be able to download and unzip some files and type a few commands in a dos box or terminal window on a mac or unix box. Being familiar with java or eclipse would not hurt. Being able to help design (or at least be an intelligent sounding board for) the rest of the server stuff would be a plus.
I can trade you for go lessons if you are weaker than 5k. I am rtayek on ogs.
I would like to change the scoring method of one of the open source ai go programs. I want the scoring method to be the number of stones that it wins by. I would like to train this algorithm from scratch. There is some mention of this in this post on How to force KataGo to win by max points ....
I tried downloading the latest katrain on windows 10 using pip, but it complained about not being able to find a window. So I removed python and installed anaconda and now katrain can't run (fatal error in launcher). I have had a number of python and conda installs over the last 5 years.
I did get the windows .exe to work.
Has anyone had recent luck with the pip install? Or perhaps a different program would be easier to modity?
Thanks
I am working on a project to evaluate how well a player performs during a game of Go. I have had a few people request that I make this program available, so I have released a limited version for free personal use.
I do not yet have a good brand for the product yet, so it is currently called Go Performance Quality.
Here is a brief explanation of what this program does. It first analyzes a single game using KataGo with a deep enough network with enough visits per move to be reasonably confident that it is not missing something obvious. It then transforms the point-loss-per-move metrics into a feature vector that represents each player's performance. It transforms this feature vector using hyperparameters derived from an admittedly small corpus of games to generate a scalar value, the Quality score.
The Quality score basically (but not necessarily) ranges from +10 to -10. +10 is probably superhuman; I have not seen any pro games hit this score in my small subset of tested games. -10 basically means that both players missed the most urgent point on the board for most of the game. ~0 centers around my play as an ~3k across multiple servers playing what is apparently my historically average game.
You can read more detailed notes in the README in the repository linked above.
I am continuing this project in the hopes that I can generate more universally useful reports. I am aware of several of the program's shortcomings. I am currently gathering data so I can train something even better.
Please try my program, then let me know what you think. I have already received feedback from people who will not try my program, and it has not led to any insights that might enable me to improve it.
I am also interested in requests for additional features, though I make no promises as to whether I will spend time on them.