4 ms·
I once won an AI tournament for senet :) so for me this post relates to AI... But still... it's a mystery how this gets to the top of HN
by amitport 5y ago
I once won an AI tournament for senet :) so for me this post relates to AI... But still... it's a mystery how this gets to the top of HN
- OJFord 5y ago> it's a mystery how this gets to the top of HN Because people (such as me!) found it interesting and up-voted it. Per the guidelines: > What to Submit > On-Topic: Anything that good hackers would find interesting. That includes more than hacking and startups. If you had to reduce it to a sentence, the answer might be: anything that gratifies one's intellectual curiosity. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- comicjk 5y agoRandom wiki pages are one of the things that give HN its pleasant Old Internet atmosphere to me. Sometimes I've thought about sampling over wikipedia uniformly at random, submitting to HN, and observing the trends in what rises to the top.
- coldpie 5y agoHahaha. Have you ever clicked the "Random Article" button on Wikipedia? I learned the world has a _lot_ of tiny villages no one has ever heard of.
- bckr 5y agoWhat if there were a recommender system in the loop that looked at which articles tend to be voted up and then would be more likely to submit articles that it thought HN would find interesting — would a uniform distribution filtered by a "probability to be well-upvoted" be a good way to do this?
- lakkal 5y agoI used to do that a lot. Lots of small villages and soccer/football players...
- ggggtez 5y agoWhat's the best strategy? I barely notice any strategic edge, or even penality for making moves that look bad.
- amitport 5y agoSee https://news.ycombinator.com/item?id=27890183 https://news.ycombinator.com/item?id=27890183 on this thread
- ggggtez 5y agoTaking a look, I don't really see any concrete lessons to take away. Maybe the most concrete thing is that a 3 block is valued at 20 while a 2 block is valued at 8. Unfortunately, this heuristic is probably just arbitrary, and nearly any set of weights would probably still produce a meaningful result since the main strategy is just Expectimax search. Disappointing. I was really hoping for some intuition that a human could apply
- amitport 5y agoWell it was just an anecdote, but in any case, there are a few strategies in this codebase, and I think if you look at https://github.com/amitport/senet-ai/blob/master/SmartUtility.cpp https://github.com/amitport/senet-ai/blob/master/SmartUtilit... you'll find it does a little more than what you said.
- YeGoblynQueenne 5y ago>> I once won an AI tournament for senet :) When and where was that? More details please? :)
- amitport 5y agoIt was around 2010 before all the reinforcement learning madness :) It was a university student competition in (mostly computer science bachelor and master students). The core algorithm is https://en.wikipedia.org/wiki/Expectiminimax https://en.wikipedia.org/wiki/Expectiminimax which is a type of heuristic tree search over the possible board states. Winning such a tournament meant you can write efficient C++ code (so you can search more states during the allocated turn) and you can invent/feature-engineer good heuristics that estimate how close is a board state to winning the game. I don't remember what heuristics was used, I don't even remember the rules :) But I've uploaded the source to github a few years ago: https://github.com/amitport/senet-ai https://github.com/amitport/senet-ai The heuristics are at: https://github.com/amitport/senet-ai/blob/master/SmartUtilit https://github.com/amitport/senet-ai/blob/master/SmartUtilit... I can't really make sense of it anymore :) but it seems to work
- YeGoblynQueenne 5y agoThanks! I think these days the idea is to replace hand-crafted heuristics with (deep) reinforcement learning. But adversarial search by minimax and friends is still the core of AI players, far as I can tell.
- amitport 5y ago(Fixed link: https://github.com/amitport/senet-ai/blob/master/SmartUtility.cpp https://github.com/amitport/senet-ai/blob/master/SmartUtilit... )