Skip to content
Little GolemMake your next move.

Is fuego19 bot a program?

Public forum discussion.

Go

#1 · Crelo

11 Jun 2010

I'm playing with it and in the beginning it was possible to be a program. But the last moves make me think is a person.

If it's a bot who's operating it and what is the name of the software?

#2 · isometry

11 Jun 2010

Chances are it has something to do with this.

#3 · Aganju

11 Jun 2010

It is a bot.

I had a lively discussion before, because I did not know, and was a bit pissed about it (it entered as 14.9 kyu - what else could it do - and I had to give it handicap stones and then got ripped in pieces). Still don't like it, but there's nothing it could have done against it, except writing the info that it is a bot in his user profile. I can only ask that every bot-maker does that.

Obviously, the maker of the fuego IDs thinks this is anyway clear to everybody. (I had a math prof once who kept saying 'if it is obvious to everyone, it is basic; if it is obvious to me, it's elementary. And I'm only teaching elementary stuff').

#4 · Crelo

11 Jun 2010

@isometry Thanks for the hint. Still I think the last moves are very strange, like checking me if I know atari. Even Monte Carlo computing doesn't explain everything. This is the game.

@Aganju You mean you tried a discussion with it? Did it answer?

#5 · Aganju

11 Jun 2010

I think his owner answered. But the discussion was here in a discussion thread.

I also found it starts making very strange moves sometimes. It seems to be optimized to win by a narrow margin only, so if it is in the lead by more than ten points, it starts making inferior moves and lose points.

I had cases where it passed on my ataris and let my kill group (which could have been easily alive), until the difference was down to below ten points. Then it came back and played strong.

#6 · Crelo

11 Jun 2010

I'm quite curious now what it will do, because my game seems good for me even without Fuego playing bad moved.

#7 · sm9

13 Jun 2010

MCTS programs, like fuego, are like professional players in that they try to maximize their chance of winning; this is unlike amateur players who try to maximize the score. So if it thinks it is half a point ahead it will play any old move as long as it preserves its win. If it thinks it is half a point behind it will go crazy trying to find a complex line.

Unfortunately this is where it differs from the pro: it might try a forcing move, (wrongly) thinking there is a 50% chance of the opponent ignoring it, and therefore it has a 50% chance of winning the game by playing that move.

When trying to beat MCTS programs you need to know two other things:

1. Their main weakness is understanding seki and nakade;

2. They get stronger as the game goes on, and as long as they've not mis-read a seki/nakade they will always win a favourable endgame position. (So don't be beguiled by weak middle game play and relax your guard.)

#8 · Crelo

14 Jun 2010

@sm9 Now I'm worried :-) I'll have to count the board in the endgame.

I know about correct play on 9x9 boards, do the program can play good yose on 19x19?

#9 · erratic

14 Jun 2010

> do the program can play good yose on 19x19?

As mentioned, if it is way ahead or way behind, it sucks. It does not play for maximizing the score, but only for win loss and its criterion on what is secure sucks. It is not true that it finds the safest way, that is a myth. It is based on a statistical idea of how alive a group is. Maybe a group that can be proved to be 100 secure is only 75% alive for the bot and that biases its evaluation.

But if the score is close it is a very respectable opponent.

For me, around 1d KGS, in a fast careless game, stronger than me. In a slow game, weaker than me. Its most common flaw is giving sente for nothing when it prefers a move that is kikashi but after the obvious answer requires an extra move to fix the shape giving sente to the opponent. A different move ordering would have made more points keeping sente as long as possible. It likes kikashi moves, but not necessarily sente moves.

#10 · sm9

15 Jun 2010

@erratic Sorry to be pedantic, and maybe we are using different terminology, but:

"It is not true that it finds the safest way, that is a myth"

--> Not a myth: Fuego plays the move that gives it the highest winning probability (but in its opinion, not yours)

"It is based on a statistical idea of how alive a group is."

--> Fuego doesn't think in terms of groups, let alone how alive they are. It simply plays out lots of games to the very end, counts the score, and sees what percentage of those are a win for it at the end.

Of course you can make a map of what it thinks about the probability of each group living by analyzing that playout data, but IIRC Fuego only does that in debug mode, and does not use it to influence its play.

#11 · Aganju

15 Jun 2010

how sure are you of these claims?

I thought I read about Fuego and the concepts behind it, that it is based on an impressive mathematical advance for Go, where a paper has defined some new ways to calculate (statically, without playing lots of variations to the end) the being alive or not of groups. The details are highly mathematical, so I will not bore you with it, but I think I could find that paper again.

After some months, the things get fuzzy in my memory, but I remember quite sure that it is not based on trying around, but on exact calculation. Of course this technique is not enough to play Go on any level, but it gives a program a strong advantage in assessing situations, and based on that, Fuego was developed (and was quite successful, being at least a class better than anything before it)

#12 · sm9

15 Jun 2010

Hello Aganju,

The "mathematical advance" is MCTS (monte-carlo tree search) and searching for that, or UCT (the original name) should find plenty of papers.

Fuego is just one of many MCTS programs, not the first, but it has the distinction of being open source, so you can study exactly what it is doing if you wish. The "missing manual" by Grace Lin at http://fuego.sourceforge.net/ looks like it goes into detail of how fuego chooses moves. The first-listed publication is a good overview.

#13 · ypercube

15 Jun 2010

sm9:

"--> Fuego doesn't think in terms of groups, let alone how alive they are. It simply plays out lots of games to the very end, counts the score, and sees what percentage of those are a win for it at the end."

Are you sure about that (that Fuego doesn't think in terms of groups when deciding for a move to make)?

I mean, after doing the tree search.

#14 · erratic

15 Jun 2010

I am not questioning MCTS is a big advance. Numbers talk by themselves. Prior programs were 7 kyu at best and MCTS has pushed to 1 dan (2 dan with inhumane time settings). These are facts.

In the playouts a group either lives or dies, all of it, you don't need do think in terms of groups for that, it just happens. If a group that should live 100% dies in 20% of the playouts, that biases evaluation. This is also a fact. It is assumed by all authors of strong programs, recognized as the next breakthrough if someone finds a way to make the playouts smarter but not so slow to hurt the algorithm, that may solve currently known weaknesses like semeai.

As stated by Yamato, the author of Zen, the strongest program up to date.

“Human players use reading (yomi) and feeling (kankaku) to play Go. In MC programs, I think the reading is equivalent to UCT, and the feeling is equivalent to playouts. The reading is scalable, the feeling is not.â€

http://www.mail-archive.com/computer-go@computer-go.org/msg11408.html

#15 · sm9

15 Jun 2010

Hello ypercube,

Yes, after doing the tree search it plays the move, nothing else.

I'm not sure exactly how "heavy" the playouts are. "Light" playouts are very close to random. "Heavy" playouts use patterns and/or knowledge about group strength to bias the moves it considers; but they are much slower. The strength of an MCTS program is proportional to the number of playouts it does, so too heavy and it cannot do enough playouts and it plays weakly.

I think Fuego uses 3x3 patterns to bias moves, but no group knowledge.

#16 · erratic

15 Jun 2010

--> Not a myth: Fuego plays the move that gives it the highest winning probability (but in its opinion, not yours)

Does the idea of "minimax value" mean something to you? This has nothing to do with opinions.

#17 · MarleysGhost

15 Jun 2010

Yes, Fuego apparently does keep track of groups. When playing out the "random" games, Fuego recognizes atari. Recognizing atari requires keeping track of groups, right?

To quote from the cited "Missing Manual",

Outside of the UCT tree, the playout phase tries to generate playout moves based on the playout policy. Playout moves are generated until a NULL move is generated (i.e., after a pass move was played). The playout policy generates a move in the following order (from highest to lowest priority):

1. Nakade heuristic move

2. Atari capture move

3. Atari defense move

4. Low liberty move

5. Pattern move (Hane, 2 kinds of Cut, Edge)

6. Capture move

7. Random move

8. Pass

9. NULL

#18 · sm9

15 Jun 2010

@erratic: Fuego doesn't use minimax. It uses MCTS.

@MarleysGhost: Thanks for posting the playout policy. Yes, Fuego tracks what it calls "blocks" of stones, so it can recognize atari and captures. If that is what you mean by a group then it tracks groups :-)

(But, AFAIK, it isn't tracking how strong each group, or even each block, is)

#19 · MarleysGhost

15 Jun 2010

Intuitively, I would guess a "group" is a set of "chains" (contiguous stones) that are made alive by the same pair of eyes. But I don't know any precise definitions of "blocks", "groups" and/or "chains" as used in the literature or in the program. To recognize atari, Fuego must have, for example, an opinion that the stones in danger are not already unconditionally alive. I don't know if Fuego gets that opinion from static analysis or what.

#20 · erratic

16 Jun 2010

> @erratic: Fuego doesn't use minimax. It uses MCTS.

Never said anything different.

The minimax value is referring to the board positions. All positions have a minimax value, because go, just like any other non randomized, zero-sum, bipersonal, finite, perfect information game satisfies the conditions of the minimax theorem, implying:

minimax value = maximin value = value (for short)

In endgame positions the value can be solved. By humans or computers to typically 20 moves or even more. At least, approximated by a very small margin +/- 1 or 2 points.

Therefore, if the value of your game is -9.5, you have 2 options:

1. You resign and finish the pain.

2. You play your best yose to finish losing by 9.5 points. (Maybe you win 1 or 2 points more or less than you opponent.)

These two options are fully respectable.

Everything else sucks.

Finally, we have a mathematical definition of sucking ;-)

#21 · sm9

16 Jun 2010

Hi Erratic,

As I said "Fuego plays the move that gives it the highest winning probability".

If the perfect-play game value is -9.5 points, and move A leads to a loss of -9.5, while move B leads to a loss of -11.5, Fuego won't see it like that. Instead it will see something like move A has a winning percentage of 6.7%, move B has a winning percentage of 6.9%. In its opinion move B is better than A, so it will play move B.

(Actually, many programs will resign once the percentages get that low.)

#22 · erratic

17 Jun 2010

(Actually, many programs will resign once the percentages get that low.)

Yes. They do resign, but after playing some horrible desperate moves.

The problem is when MCTS programs are way behind near the endagme, they do not see the difference between a good move (because it is not good enough to win the game) and a bad move and they play neither, they play a ridiculous wishful move that could only win the game if the opponent did a 30 kyu mistake. That move is objectively bad, it is not an opinion. This is a known limitation. Most program authors do not care about it because the program will not likely be ahead of a stronger opponent or vice versa, so the difference is merely cosmetic. But that is how MCTS programs behave by default. (Some techniques like dynamic komi can alter this behavior.)

#23 · Crelo

21 Jun 2010

I do not quite understand how this works. Why play well when it is ahead and play idiotic moves when it is behind? Isn't the idea to play the best move? Even if the best move loses by 9.5 points it is still the best result possible.

Wishful 30 kyu moves exist regardles of the result, why do the computer play them 'only' when behind?

I can confirm this is the case with my game, very boring to answer all kikashi and atari.

#24 · halladba

21 Jun 2010

For such MCTS AI, there is no difference between losing by 9.5 and losing by 100 points. There is only a difference between losing and winning.

In a position worth -9.5, a human would play the best move that would lead to -9.5. But the AI would rather play a tricky move that leads to -20 with perfect play but which can trap you if you're not paying attention. Between move A losing -9.5 with 100% chance and move B losing -20 with 99% chance and winning +15 with 1% chance (if you're not paying attention), a monte-carlo AI preferes move B.

On the other hand, it doesn't care whether it wins +100 or +30.

Therefore MCTS plays well in balanced position (it is very important to play the right move), it plays wishful moves when lagging behind (because the non-tricky move doesn't bring any hope), it plays average moves when ahead in the score.

#25 · Crelo

21 Jun 2010

Well, but in truth a wishful move only make the position worse. It makes sense to play risky, tricky moves when behind but it doesn't make sense to play BAD moves. There is a difference between a tricky move and a simple atari.

I don't think the AI calculates the posibility you don't see the answer :-)

This MCTS AI doesn't do any reading ahead?

#26 · Aganju

22 Jun 2010

I think he just blundered away a game: Game #1200116

Fuego19 (White) was 3 or 4 points ahead, but then it started making overcautious moves to cover any potential cutting point (and I nudged him along a bit), and now he ended up losing by 0.5 points. Of course according to my personal counting, which might be off. But believe me, I counted more than once...

P.S. As of my writing, the game is still 'in process'.

#27 · Crelo

22 Jun 2010

Good for you Aganju, this bot should learn to loose :-)

I am confused about my game, I don't knoiw if he thinks it is very much ahead and tries to bring the game back to equal or it thinks it is behing and tries to trick me. How can I make the difference?

#28 · Crelo

22 Jun 2010

My conclusion about fuego19 bot:

- plays interesting strategic moves based on territory evaluation of the table.

- read well fights on the border of territories

- does not include in its strategic evaluation the relative strength and weakness of groups

- does not have a clue about life and death

#29 · Aganju

23 Jun 2010

looks like it's stunned now :-) No move for 28 hours.

#30 · Crelo

23 Jun 2010

It played pretty fast with me these last days. A move every 10 or 20 minutes. The game is finished.

#31 · pfafulous

3 Sep 2010

Dude, how did you link the game in here like that? That's awesome.

Playing against fuegobot is like trying to reason with a wild animal. I find it almost terrifying.

#33 · pfafulous

4 Sep 2010

Well, yes, that seems so obvious now.

#34 · pfafulous

4 Sep 2010

Wow, you're right, no idea at all about L&D.

#35 · klaashaas

4 Sep 2010

I've gotten into L&D trouble a few times, but I found that it doesn't understand ko's very well. I've successfully saved my (already smoked) ass a few times creating a ko.