gnugo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnugo-devel] re: some question


From: zergling
Subject: [gnugo-devel] re: some question
Date: Tue, 19 Mar 2002 17:50:30 +0800

I say sorry not to carefully read the code. I will read it again.

I am designing a computer go program. Natually I hope it will be the best.
Perpaps what I said make you unhappy. I dont want to debase your work.
But there is a fact, handtalk, a small program, can beat most computer
go programs. So we should be concerned more about the theory. If we run
the wrong way, it is hard to reach or even near the goal. A high building
should not have a soft base.

English is not my native language, so perhaps I make some wrong _expression_.
I hope it not affect the meaning.

But I think perhaps gnugo would be better to contain a "global search"
to replace the worm_reason owl_reason fuseki etc. "Global search" is base on
the result of "local search", to reduce the complexity. It is difinitely
right.
It is easy to prove. So how about spliting the local search to more search?

Search is more accurate and just a little expensive then static judgement
when
the explored nodes is in limitation.

In this way , the program will be beautiful. It only cantains search and
evaluation.
Now look at gnugo's code:
    do_genmove(...){
        examine_position(color, EXAMINE_ALL);
        worm_reasons(color);
        owl_reasons(color);
        fuseki(color);
        shapes(color);
        combinations(color);
        endgame_shapes(color);
        fill_liberty(move, color);
        aftermath_genmove();
    }

Forgive my offence, It is really ugly. It is full of contrived rules.
You can not prove that the rules are not conflicted and sufficient.

And there are some thinking below, welcome to dicuss.

Many computer go program has some database about eyes shape etc.
They are used to accelerate the search. But they are only
to accelerate the search. It means the database only record the
familiar search's result. If using search engine, it must get
the same result in longer time. In this way. the search engine can maintain
the database automaticly.

Now, the database does not conflict with search engine. We can focus in the
search engine and evaluation.

The program is still poor, it can not know about anything. But it can give
me some information using probalility.

There is one sample, there are two white group A and B,they are surround
with black.
but they have some probability to connect. How to choose connect or not?
if a is alive A's value is value_a , B's is value_b, current connect
probability is connect1,
A's alive probability is alive_a , B's is alive_a, a move make connect
probability increase to connect2
What is the value of this move?

before move:
    total_value1 = (value_a * alive_a + value_b * alive_b) * (1-connect1)
        + (value_a+value_b)*((alive_a+alive_b)>1)? 1:
(alive_a+aliveb))*connect1
after move:
    total_value2 = ... (the same function as above but using connect2
replace connect1)

the move's value = total_value2-total_value1;

It match the fact, it is a valuable move to connect 2 weak group.
But valueless to connect 2 alive group.

I think we can find many probability to describe the concept of the go.
And we can use search to make probablity accurate.

> > This is my first time to post messege on gnugo-devel maillist.
> > But I have subscribed the mail list for a long time.
> > I am very interested with computer go.
> > I read throught the gnugo's code and  yestoday.
> > I am very shocked. There is not any search algorithm using in gnugo?
>
> GNU Go uses search to investigate questions of life and death, semeai
> and connections. See owl.c and reading.c. Search is built into the pattern
> database through the autohelpers. All of this is local search, designed to
> find the answer to a particular question (can this group live), not global
> search.
>
> > I think that the good comupter go program must has a simple but effcient
> > core(search engine), and an accurate evaluation function based on
mathematic
> > model. Not like gnugo it is big and slow, full of patchs and many
"simple"
> > bugs.
> > It is hard to maintain and extend.
>
> Global search is pointless if at the terminal modes the evaluation
> of life and death is wrong.
>
> > You have paid many time on it. Why not use more to think, less to code.
>
> Have you written a go program?
>
> Dan
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]