gnugo-devel
[Top][All Lists]
Advanced

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

Re: [gnugo-devel] GNU Go 2.6 compilation issue on Debian GNU/Linux


From: Gunnar Farnebäck
Subject: Re: [gnugo-devel] GNU Go 2.6 compilation issue on Debian GNU/Linux
Date: Sat, 12 Aug 2023 13:40:38 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0

The level settings have never been intended to limit strength, but to limit time. Obviously these are correlated, but the focus was always to make the engine as strong as possible with a tradeoff against speed. The differences between 2.0 and 3.8 are quite big and far from everything is related to searches.

The best way to modify 3.8 for reduced strength is probably to make it (more) erratic. One way would be to add noise (random numbers) to the estimated move values just before it chooses the top move. The amplitude of the noise could be user controlled. Possibly multiplicative noise is better than additive, try both and see which turns out most enjoyable.

/Gunnar

On 8/12/23 01:22, James Dempsey wrote:
Thanks, Luis.  So are you saying, with version 3.8, by manipulating these settings to grep for, I should be able to achieve a rank commensurate with the version 2.0 bot that I've been playing?  (whose style and strength is actually very enjoyable and natural to play against, unlike many other non-GNU Go bots, actually)

I would love to help with development if at all possible -- again, zero C experience, more of a dynamic/scripting language/web development programmer here as opposed to systems, but I'd love to learn and have a project about which to be enthusiastic and motivated and learn from.

On Tue, Aug 1, 2023 at 1:29 PM Luis Felipe Strano Moraes <luis.strano@gmail.com <mailto:luis.strano@gmail.com>> wrote:

    James,

    the documentation is a bit sprinkled over the source code, so it
    will involve some searching. Most of these options can be found if
    you grep for 'mandated_' inside of the source code. For example,
    some of the implications of depth are documented within the function
    set_depth_values inside of engine/utils.c. If you set one of these
    toggles from the command line when launching the client, then it
    will override one of the mandated_ variables (so if you set depth,
    it will override mandated_depth which would have otherwise been set
    to -1 and inherited from the level set itself).

     From what I've seen of some of the other ones like KataGo, they
    might be able to better mimic more realistic lower ranks, so
    depending on your ultimate goal it might indeed be an alternative to
    explore.

    Having said that, I'm chatting with folks from GNU to see if we can
    get development of GNU Go a bit more active again, and hope to have
    good news there soon.

    Best regards,


    On Tue, Aug 1, 2023 at 10:20 AM James Dempsey
    <james.e.dempsey@gmail.com <mailto:james.e.dempsey@gmail.com>> wrote:

        Luis, do you know where the minimum values of the "options
affecting strength and speed" you linked me to are documented? I couldn't determine from the source code what values would put
        GNU Go 3.8 at its weakest rank.

        GNU Go 2.6 does not support GTP, so I've scratched that idea.

        Were you implying that I'd have better luck with a different
        engine (e.g., KataGo) if I wanted to control rank?

        On Sat, Jul 22, 2023 at 10:38 AM James Dempsey
        <james.e.dempsey@gmail.com <mailto:james.e.dempsey@gmail.com>>
        wrote:

            Ah, thanks Luis, somehow I missed that level of granularity
            given by those options.

            I would wonder, though, if `--level` already presets those,
            and at least from running GNU Go bots on KGS where I've
            observed `--level 0` and `--level 10` both settle at 4k,
            would they really make much difference in strength/rank?

            There's a GNU Go 2.0 bot on KGS that plays at 11k, which is
            more what I'm looking for, FYI.

            Thank you.

            On Fri, Jul 21, 2023 at 5:59 PM Luis Felipe Strano Moraes
            <luis.strano@gmail.com <mailto:luis.strano@gmail.com>> wrote:

                James,

                being quite honest, it will be difficult for you to
                toggle difficulty by going to older versions. Likely
                your best bet if you really want to stay with the GNU Go
                engine, would be to toy around with some of
                configurations that are also exposed (which level in
                some cases just defines a preset for) here:
                https://www.gnu.org/software/gnugo/gnugo_3.html#SEC31
                <https://www.gnu.org/software/gnugo/gnugo_3.html#SEC31>
                (see section Other options affecting strength and speed)

                Best regards,


                On Fri, Jul 21, 2023 at 2:55 PM James Dempsey
                <james.e.dempsey@gmail.com
                <mailto:james.e.dempsey@gmail.com>> wrote:

                    Thanks Luis, I replaced `-lang-c89` with `-std=c90`
                    and that let me compile successfully.

                    I wanted to try compiling a weaker version :). Even
                    with setting `--level` for 3.8 I see no real
                    difference in strength/rank.

                    On Fri, Jul 21, 2023 at 4:47 PM Luis Felipe Strano
                    Moraes <luis.strano@gmail.com
                    <mailto:luis.strano@gmail.com>> wrote:

                        James,

                        is there any reason why you are trying to build
                        even older versions?

                        The error there is that that specific compiler
                        flag is not valid for this version of GCC. I'd
                        guess you would have to look at how to switch it
                        for something else to see if it would still
                        build, this seems to be implying it should be
                        using the C89 standard, which you can do in
                        different ways now:
                        https://gcc.gnu.org/onlinedocs/gcc/Standards.html 
<https://gcc.gnu.org/onlinedocs/gcc/Standards.html>
                        "-ansi, -std=c90 or -std=iso9899:1990"

                        I'm trying to chat with folks from GNU to see if
                        we can sort out making a new release of GNU Go
                        to at the very least solve some compilation
                        issues and make it build again, hopefully have
                        something happen soon on it.

                        Best regards,


                        On Fri, Jul 21, 2023 at 6:08 AM James Dempsey
                        <james.e.dempsey@gmail.com
                        <mailto:james.e.dempsey@gmail.com>> wrote:

                            Hello,

                            I'm experiencing another compilation issue,
                            this time for GNU Go 2.6 on Debian GNU/Linux
                            11 (bullseye).

                            gcc is

                                gcc (Debian 10.2.1-6) 10.2.1 20210110


                            Error is:

                                gcc -DHAVE_CONFIG_H -I. -I. -I..
                                -I../engine -I../interface    -g -O2
                                -Wall -W -Wpointer-arith
                                -Wbad-function-cast -Wcast-qual
                                -Wcast-align -Wwrite-strings
                                -Wstrict-prototypes -Wmissing-prototypes
                                -Wmissing-declarations -Wp,-lang-c89 -c
                                sgf.c
                                cc1: error: command-line option
                                ‘-lang-c89’ is valid for the driver but
                                not for C
                                make[2]: *** [Makefile:155: sgf.o] Error 1
                                make[1]: *** [Makefile:158:
                                all-recursive] Error 1
                                make: *** [Makefile:306:
                                all-recursive-am] Error 2


                            One again, not a C programmer and couldn't
                            exactly make sense of the answers I had
                            searched for.  Any help would be appreciated.

                            Thank you.
                            _______________________________________________
                            gnugo-devel mailing list
                            gnugo-devel@gnu.org <mailto:gnugo-devel@gnu.org>
                            https://lists.gnu.org/mailman/listinfo/gnugo-devel 
<https://lists.gnu.org/mailman/listinfo/gnugo-devel>



-- Luís Felipe Strano Moraes
                        _______________________________________________
                        gnugo-devel mailing list
                        gnugo-devel@gnu.org <mailto:gnugo-devel@gnu.org>
                        https://lists.gnu.org/mailman/listinfo/gnugo-devel 
<https://lists.gnu.org/mailman/listinfo/gnugo-devel>

                    _______________________________________________
                    gnugo-devel mailing list
                    gnugo-devel@gnu.org <mailto:gnugo-devel@gnu.org>
                    https://lists.gnu.org/mailman/listinfo/gnugo-devel
                    <https://lists.gnu.org/mailman/listinfo/gnugo-devel>



-- Luís Felipe Strano Moraes
                _______________________________________________
                gnugo-devel mailing list
                gnugo-devel@gnu.org <mailto:gnugo-devel@gnu.org>
                https://lists.gnu.org/mailman/listinfo/gnugo-devel
                <https://lists.gnu.org/mailman/listinfo/gnugo-devel>

        _______________________________________________
        gnugo-devel mailing list
        gnugo-devel@gnu.org <mailto:gnugo-devel@gnu.org>
        https://lists.gnu.org/mailman/listinfo/gnugo-devel
        <https://lists.gnu.org/mailman/listinfo/gnugo-devel>



-- Luís Felipe Strano Moraes
    _______________________________________________
    gnugo-devel mailing list
    gnugo-devel@gnu.org <mailto:gnugo-devel@gnu.org>
    https://lists.gnu.org/mailman/listinfo/gnugo-devel
    <https://lists.gnu.org/mailman/listinfo/gnugo-devel>


_______________________________________________
gnugo-devel mailing list
gnugo-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/gnugo-devel




reply via email to

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