Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What is outer boundary? And fowefive bug #47

Closed
elpanor opened this issue Jan 14, 2018 · 15 comments
Closed

What is outer boundary? And fowefive bug #47

elpanor opened this issue Jan 14, 2018 · 15 comments

Comments

@elpanor
Copy link

elpanor commented Jan 14, 2018

  1. Is it number of extended board? Or just outer number of 'v'? In color[v] outer boundary's meaning?

  2. Aq has severe flower five shape life death bug.

  3. In seki you need to add more condition(ex lib_cnt = 3 or 4)

@ymgaq
Copy link
Owner

ymgaq commented Jan 15, 2018

  1. The outer boundary means points included in the extended board (21x21) and not included in the real board (19x19).

2/3. As I mentioned (#36), AQ is designed to ignore some shapes with low appearance probability for speeding up. If I try to recognize this shape as SelfAtariNakade or IsSeki, the code becomes complicated and slows down. Please send a pull request if you have a good idea to modify this.

@elpanor
Copy link
Author

elpanor commented Jan 15, 2018

  1. At first you shoud remove !iseyeshape and !isseki in search cpp
    If Iseyeshape and isseki is correct then !iseyeshape and iisseki is useful in prob selection.
    But isseki and iseyeshape is incorrect. With removing that, it can be useful in many cases. I fixed it in issue bugs and many severe bugs without speed down.(still not helpful flowefive shape. That is reaaly critical in capturing race.)
    But still best option is making correct isseki and iseyeshape because correct eyeshape and falseeye can make easy correct isseki. It is really difficult to make correct isseck with incorrect iseyeshape.(especially liverty 3 or 4 in seki. It cause illegal move in sometimes.

  2. And you shoud expand respose_move(nakade form).
    Nakde form ignore in 1line candidate in many cases.
    In nakade form..aq need to expand search 1line vertex.

  3. Aq doesnt know double ko.

  4. And i need help for bug check.
    Can u tell me how to output iseyeshape or is falseeye or isseki in all vertex in gogui gtp shell?

@elpanor
Copy link
Author

elpanor commented Jan 15, 2018

  1. This is important in capturing race.
    Feedtensor should search at first hole and pocket in oppenent's ren. This is reaaly important. In capturing race. You shoud give to additional advantage to hole or pre artaritype of enemy's ren to reduce liverty counts.

@elpanor
Copy link
Author

elpanor commented Jan 15, 2018

  1. This is not real solution.
    But I am using special bug type form for temporary solution. When bug comes, making new function type for bug and let aq check that bug. But it is not correct solution.

@elpanor
Copy link
Author

elpanor commented Jan 15, 2018

7.isselfatarinakade is using only v
But if u modify this (pl, v) and cross check at my and her
Then u can fix many bug types(like as flowefive) In my opinion.

@elpanor
Copy link
Author

elpanor commented Jan 15, 2018

  1. Another idea.
    I don know it is possible.
    But if possible in many test it will be useful.(remove !iseyeshape and !isseki)
    Ex white doesn recognize flowerfive but in next turn black recognize it.
    So if white choose move and black search. Then white's move is incorrect then get back.
    Surely it is time consuming.. so ex give to whie 10sec give to black 3sec. With short search for enemy's turn is enough.
    Just my idea..i think it's difficult.

@elpanor
Copy link
Author

elpanor commented Jan 15, 2018

  1. Some tip for time setting.
    1.In many cases below 1 prob move cause incorrect tenuki.
    Ya that tenuki is sometimes great moves but half of that moves failed.
    So best move's prob is below 1.0 then extend time.
    Ex thinking_time *1.5
  2. To reduce error below 1 prob move
    Compare multi lamda situation.
    Ex best move value is 94 but roll is 38 prob 0.0
    2nd move value is 84 roll is 50 prob 17.0
    In half of case. 1st move is error.
    Then in bellow 1 prob condition
    Compare 1st move and 2nd move in other lamda situatiion.
    If still 1st is higher in other lambda situation..then choose first move.

@elpanor
Copy link
Author

elpanor commented Jan 15, 2018

Solution from joseki and fuseki to endgame strategy.
Especially solution for end game problem.
Next time I will describe in details
Sorry for my poor english.
Really thx for great go program.

@ymgaq
Copy link
Owner

ymgaq commented Jan 15, 2018

Thank you for mentioning many improvements for AQ. BTW I'm preparing the next version and I hope that some of the problems you pointed out are resolved.

  1. Do you mention about CreateNode()? If so, I think removing check of IsEyeShape and IsSeki causes a critical bug on the Tromp-Taylor rule. AQ will not stop until all her stones disappear because suicide moves are added in child nodes.

  2. I think the Nakade shapes include 1-line moves. Could you tell me which line of which file has problems? (Make link as https://github.com/ymgaq/AQ/blob/master/src/search.cpp#L357-359)

  3. Generally speaking, double Ko is very complicated to implement correctly. Do you have any idea?

  4. There is no function to display debug information. You can add a new function like PrintBoard if you need.

  5. That's a good idea. In the next update, I will release the learning code written in Python, so everyone can test any features. (But it needs a lot of time to learn with multiple GPUs.)

  6. In the next version it will check both pl.

9/10. Choosing a low probability move is mainly due to thinking time setting at high winning rate or an algorithm behavior trying to postpone the conclusion when the situation gets worse (called as 'Horizon effect'). The former one will be fixed with the new version, but the latter one can not be solved by extending time.

@elpanor
Copy link
Author

elpanor commented Jan 15, 2018

  1. Ya ceate node. I never experienced any bug with that.
    And i use move_cnt limit too.
    Example at latter half (with move_cnt option) can avoid bug. I set 280

@elpanor
Copy link
Author

elpanor commented Jan 15, 2018

I am workig now . So i cant explain well now.
After finishing work, I will explain in details organizing with my thoughts.

@elpanor
Copy link
Author

elpanor commented Jan 15, 2018

1-1 I mean (ex until move_cnt 280 remove in eyeshape and isseki ) then after 280 moves include eyeshape and isseki.

@elpanor
Copy link
Author

elpanor commented Jan 15, 2018

  1. Ya. Aq nakade algorithsm include 1line vertex.
    But in many cases aq depends on excessiely nakade form pattern and prob.
    Ex 1line vertex is correct move. But prob and nakade pattern point center position.
    At that time. Is changing cp to 0 aq find correct move.
    I think when aq decided nakade move, if aq can recheck with cp=0 then aq can find too many correct answer in nakade form. I don know it is possible.
    But in too many tests when cp=0 or low AQ found correct move. Sorry for poor my explanation.

@elpanor
Copy link
Author

elpanor commented Jan 15, 2018

  1. About double ko. I am preparing double ko problem.
    Aq's double ko problem is severe. It is destroying hole game. I will explain later. But i don know it is possible.

@elpanor
Copy link
Author

elpanor commented Jan 15, 2018

6-8 wow if possible for both pl, then many error and bug and life death problem will be solve . Lol
I didn think it was possible. Hope u will succeed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants