Code of Typhoon is available

Discussions about Winboard/Xboard. News about engines or programs to use with these GUIs (e.g. tournament managers or adapters) belong in this sub forum.

Moderator: Andres Valverde

Code of Typhoon is available

Postby Tony Thomas » 02 Jun 2006, 19:52

I just checked up few of the old engines that has never been released, and I stumbled up on the code for Typhoon. If anyone can compile it for the fans then it would be nice.

http://perl.guru.org/scott/hobbies/chess/monsoon.html

Here is the info

In 2000 I started a chess program called "monsoon". When I made the code multithreaded in 2004 I started a new project based largely on the same old code called "typhoon". This code is not ready for an official release but it is available to those who are interested. If you want to run it (instead of just look at the code) then you'll have to build it yourself (which requires MSVC or gcc and nasm) but there is an outdated user manual that might help you figure out how to use it.


Here is the direct link to the source code...http://wannabe.guru.org/svn/typhoon/trunk/
Tony Thomas
 
Posts: 232
Joined: 14 May 2006, 19:13
Location: Atlanta, Ga

Re: Code of Typhoon is available

Postby Pablo » 03 Jun 2006, 21:46

Hi Thomas,
I downloaded from Dann Corbit site a Windows exe version of Typhoon but when I try to open it request some Visual Basic? .dll files one of which I do not have (advapi32.dll export version) and I do not find it at Google. Could you help me?
Regards,
Pablo Urzua




Tony Thomas wrote:I just checked up few of the old engines that has never been released, and I stumbled up on the code for Typhoon. If anyone can compile it for the fans then it would be nice.

http://perl.guru.org/scott/hobbies/chess/monsoon.html

Here is the info

In 2000 I started a chess program called "monsoon". When I made the code multithreaded in 2004 I started a new project based largely on the same old code called "typhoon". This code is not ready for an official release but it is available to those who are interested. If you want to run it (instead of just look at the code) then you'll have to build it yourself (which requires MSVC or gcc and nasm) but there is an outdated user manual that might help you figure out how to use it.


Here is the direct link to the source code...http://wannabe.guru.org/svn/typhoon/trunk/
Pablo
 
Posts: 242
Joined: 26 Sep 2004, 21:57
Location: Santiago-Chile

Re: Code of Typhoon is available

Postby Guenther Simon » 03 Jun 2006, 22:34

Pablo wrote:Hi Thomas,
I downloaded from Dann Corbit site a Windows exe version of Typhoon but when I try to open it request some Visual Basic? .dll files one of which I do not have (advapi32.dll export version) and I do not find it at Google. Could you help me?
Regards,
Pablo Urzua


Hi Pablo, I have really no idea what 'Google' you have used? ;-)

If I google for it I get this:
Code: Select all
Results 1 - 10 of about 457,000 for advapi32.dll. (0.08 seconds)


...and already the top link has the file available for download.

Guenther
User avatar
Guenther Simon
 
Posts: 794
Joined: 26 Sep 2004, 19:49
Location: Regensburg, Germany

Re: Code of Typhoon is available

Postby Wilhelm Hudetz » 04 Jun 2006, 05:57

Hi all,

anyone get it to work?
I get no error but it does nothing.

regards, Wilhelm
Wilhelm Hudetz
 
Posts: 14
Joined: 28 Sep 2004, 15:29

Re: Code of Typhoon is available

Postby Graham Banks » 04 Jun 2006, 06:19

Wilhelm Hudetz wrote:Hi all,

anyone get it to work?
I get no error but it does nothing.

regards, Wilhelm


Sounds like the same problem I had with Francesca MAD
User avatar
Graham Banks
 
Posts: 2537
Joined: 26 Sep 2004, 20:37
Location: Auckland, NZ

Re: Code of Typhoon is available

Postby Wilhelm Hudetz » 04 Jun 2006, 06:25

Graham Banks wrote:
Sounds like the same problem I had with Francesca MAD


Hi Graham :)

Francesca works fine by me with this wb2uci

[ENGINE]
Name=Francesca 0.11
Author=Tom King
Filename=Wb2Uci.exe

[OPTIONS]
Program=mad.exe xboard
;Program=mad.exe /xreuse /xreuse2 xboard
InitString=
Protocol=1
OwnBook=true
Ponder=false
LevelExtend=Strict
ShowThinkingMove=false
Logfile=false
Whitescore=true
Visible=Hash,ShowThinkingMove,Logfile,OwnBook,Extras

[EXTRAS]

Best regards
Wilhelm
PS: Typhoon works now, but uses all available ram...
Wilhelm Hudetz
 
Posts: 14
Joined: 28 Sep 2004, 15:29

Re: Code of Typhoon is available

Postby Graham Banks » 04 Jun 2006, 06:43

Wilhelm Hudetz wrote:
Graham Banks wrote:
Sounds like the same problem I had with Francesca MAD


Hi Graham :)

Francesca works fine by me with this wb2uci

[ENGINE]
Name=Francesca 0.11
Author=Tom King
Filename=Wb2Uci.exe

[OPTIONS]
Program=mad.exe xboard
;Program=mad.exe /xreuse /xreuse2 xboard
InitString=
Protocol=1
OwnBook=true
Ponder=false
LevelExtend=Strict
ShowThinkingMove=false
Logfile=false
Whitescore=true
Visible=Hash,ShowThinkingMove,Logfile,OwnBook,Extras

[EXTRAS]

Best regards
Wilhelm
PS: Typhoon works now, but uses all available ram...


Thanks Wilhelm. I'll try that! :D

Regards, Graham.
User avatar
Graham Banks
 
Posts: 2537
Joined: 26 Sep 2004, 20:37
Location: Auckland, NZ

Re: Code of Typhoon is available

Postby Jim Ablett » 04 Jun 2006, 08:53

I just checked up few of the old engines that has never been released, and I stumbled up on the code for Typhoon. If anyone can compile it for the fans then it would be nice.


Hi Tony,

I received your email, but couldn't reply back by email (kept being bounced)
DC saved me some work by compiling it (and probably got me off the hook as well! not easy at all) :shock:

Thanks for info anyway,

Jim.
___________________________
http://jimablett.net63.net/
Jim Ablett
 
Posts: 721
Joined: 27 Sep 2004, 10:39
Location: Essex, England

Re: Code of Typhoon is available

Postby Pablo » 04 Jun 2006, 18:44

Hello G?nther,
Following your suggestion, I download the file advapi32.dll (603Kb of August 8,2004) that appear as top link at Google, and same as others downloaded files from Google, is not accepted by Typhoon saying is needed an export version?? that I do not find.
Regards
Pablo

Guenther Simon wrote:
Pablo wrote:Hi Thomas,
I downloaded from Dann Corbit site a Windows exe version of Typhoon but when I try to open it request some Visual Basic? .dll files one of which I do not have (advapi32.dll export version) and I do not find it at Google. Could you help me?
Regards,
Pablo Urzua


Hi Pablo, I have really no idea what 'Google' you have used? ;-)

If I google for it I get this:
Code: Select all
Results 1 - 10 of about 457,000 for advapi32.dll. (0.08 seconds)


...and already the top link has the file available for download.

Guenther
Pablo
 
Posts: 242
Joined: 26 Sep 2004, 21:57
Location: Santiago-Chile

Re: Code of Typhoon is available

Postby Guenther Simon » 04 Jun 2006, 19:28

Pablo wrote:Hello G?nther,
Following your suggestion, I download the file advapi32.dll (603Kb of August 8,2004) that appear as top link at Google, and same as others downloaded files from Google, is not accepted by Typhoon saying is needed an export version?? that I do not find.
Regards
Pablo


Ouch, sorry to ask this, but do you by any chance run a
historical Windows on your machine, like WIN98 or even WIN95?
In this case Typhoon will not run on your machine I guess.

Here is an excerpt from Typhoons predecessor(Monsoon) manual
and even at its time(until 2004) such old WIN versions were
excluded from working.

Code: Select all
1.4. System Requirements

This is a binary distribution of the monsoon chess engine for Win32. It should run without problems on Windows NT (Windows Server 2003, Windows XP, Windows 2000, Windows NT 4.x). It may not run on Windows ME, 98 or 95 (please let me know if you get it working on any of these operating systems).


Regards,
Guenther
User avatar
Guenther Simon
 
Posts: 794
Joined: 26 Sep 2004, 19:49
Location: Regensburg, Germany

Re: Code of Typhoon is available

Postby Pablo » 04 Jun 2006, 19:47

Hello G?nther,
You are wright, I am a traditional chap. The OS in my PC is Windows98SE.
That is all, good bye Typhoon.
Thanks,
Pablo
Pablo
 
Posts: 242
Joined: 26 Sep 2004, 21:57
Location: Santiago-Chile

Re: Code of Typhoon is available

Postby Tony Thomas » 06 Jun 2006, 11:33

Wilhelm Hudetz wrote:Hi all,

anyone get it to work?
I get no error but it does nothing.

regards, Wilhelm


I dont know if you have seen the post by Guenther at CCC already. Here it is anyway. After I used it, it worked fine for me.
Guenther Simon wrote:I found the solution from the older Monsoon help manual.
PawnHash uses entries of 320 bytes, thus Matthias value was
a bit too high for this machine ;-)
Also it seems to demand always exactly power of 2 entries.
(The hash value BTW uses 128 bytes entries.)

Currently I use this entries:
(allocates around 130MB here according to the TaskManager)

Code: Select all
"Typhoon_100 --Hash 4194304 --PawnHash 131072" /fd=c:\WinBoard\Typhoon_100


Guenther


By the way, it isnt as strong as blitz as I thought. About the same strength as Leo's 3rd division engines I would say.
Tony Thomas
 
Posts: 232
Joined: 14 May 2006, 19:13
Location: Atlanta, Ga

Re: Code of Typhoon is available

Postby Pablo » 07 Jun 2006, 18:02

Tony Thomas wrote:I just checked up few of the old engines that has never been released, and I stumbled up on the code for Typhoon. If anyone can compile it for the fans then it would be nice.

http://perl.guru.org/scott/hobbies/chess/monsoon.html

Here is the info

In 2000 I started a chess program called "monsoon". When I made the code multithreaded in 2004 I started a new project based largely on the same old code called "typhoon". This code is not ready for an official release but it is available to those who are interested. If you want to run it (instead of just look at the code) then you'll have to build it yourself (which requires MSVC or gcc and nasm) but there is an outdated user manual that might help you figure out how to use it.


Here is the direct link to the source code...http://wannabe.guru.org/svn/typhoon/trunk/


Hi Tony
I did not find a file with all the Typhoon source codes at http://wannabe.guru.org/svn/typhoon/trunk page.
Please your comments,
Regards,
Pablo
Pablo
 
Posts: 242
Joined: 26 Sep 2004, 21:57
Location: Santiago-Chile

Re: Code of Typhoon is available

Postby Guenther Simon » 07 Jun 2006, 18:16

Pablo wrote:Hi Tony
I did not find a file with all the Typhoon source codes at http://wannabe.guru.org/svn/typhoon/trunk page.
Please your comments,
Regards,
Pablo


It is there, here is a part of the Rook eval (from eval.c)
Anyway, why do you need the source code Pablo?

Code: Select all
static void
_EvalRook(IN POSITION *pos,
          IN COOR c,
          IN PAWN_HASH_ENTRY *pHash)
/*++

Routine description:

Parameters:

    IN POSITION *pos,
    IN COOR c,
    IN PAWN_HASH_ENTRY *pHash,

Return value:

    FLAG

--*/
{
    static const PMOBILITY_HELPER RMobJumpTable[2][14] =
    {
        {// (black)
            _BRookToEmpty,                     // EMPTY_SQUARE  (0)
            _InvalidMobilityHelper,            // INVALID_PIECE (1)
            _AnythingToFriendNoXray,           // BLACK_PAWN    (2)
            _BRookToEnemyLess,                 // WHITE_PAWN    (3)
            _AnythingToFriendNoXray,           // BLACK_KNIGHT  (4)
            _BRookToEnemyLess,                 // WHITE_KNIGHT  (5)
            _AnythingToFriendNoXray,           // BLACK_BISHOP  (6)
            _BRookToEnemyLess,                 // WHITE_BISHOP  (7)
            _BRookToFriendRook,                // BLACK_ROOK    (8)
            _ERookToEnemySame,                 // WHITE_ROOK    (9)
            _ERookToFriendQueen,               // BLACK_QUEEN   (10)
            _ERookToEnemyGreater,              // WHITE_QUEEN   (11)
            _AnythingToFriendNoXray,           // BLACK_KING    (12)
            _ERookToEnemyGreater,              // WHITE_KING    (13)
        },
        {// (white)
            _WRookToEmpty,                     // EMPTY_SQUARE  (0)
            _InvalidMobilityHelper,            // INVALID_PIECE (1)
            _WRookToEnemyLess,                 // BLACK_PAWN    (2)
            _AnythingToFriendNoXray,           // WHITE_PAWN    (3)
            _WRookToEnemyLess,                 // BLACK_KNIGHT  (4)
            _AnythingToFriendNoXray,           // WHITE_KNIGHT  (5)
            _WRookToEnemyLess,                 // BLACK_BISHOP  (6)
            _AnythingToFriendNoXray,           // WHITE_BISHOP  (7)
            _ERookToEnemySame,                 // BLACK_ROOK    (8)
            _WRookToFriendRook,                // WHITE_ROOK    (9)
            _ERookToEnemyGreater,              // BLACK_QUEEN   (10)
            _ERookToFriendQueen,               // WHITE_QUEEN   (11)
            _ERookToEnemyGreater,              // BLACK_KING    (12)
            _AnythingToFriendNoXray,           // WHITE_KING    (13)
        },
    };

    PIECE p;
    PIECE pFriendRook;
    ULONG uPawnFile = FILE(c) + 1;
    ULONG uColor;
    ULONG u;
    ULONG uCurrentMobility;
    ULONG uMaxMobility;
    ULONG uTotalMobility;
    COOR cSquare;
    BITBOARD bb;
    ULONG uBit;
    PMOBILITY_HELPER pFun;
    SCORE i;
   
    ASSERT(IS_ON_BOARD(c));
    p = pos->rgSquare[c].pPiece;
    ASSERT(p && IS_ROOK(p));
    uColor = GET_COLOR(p);
    ASSERT(IS_VALID_COLOR(uColor));
    pos->cPiece = c;
   
    //
    // Reward being on a half open or full open file.
    //
    if (0 == pHash->uCountPerFile[uColor][uPawnFile])
    {
        u = FILE_DISTANCE(c, pos->cNonPawns[FLIP(uColor)][0]);
        if (0 == pHash->uCountPerFile[FLIP(uColor)][uPawnFile])
        {
            //
            // Full open
            //
            EVAL_TERM(uColor,
                      ROOK,
                      c,
                      pos->iScore[uColor],
                      ROOK_ON_FULL_OPEN_BY_DIST_FROM_EKING[u],
                      "on full open");
        }
        else
        {
            //
            // Half open, no friendly, just enemy.
            //
            EVAL_TERM(uColor,
                      ROOK,
                      c,
                      pos->iScore[uColor],
                      ROOK_ON_HALF_OPEN_WITH_ENEMY_BY_DIST_FROM_EKING[u],
                      "on half open");
           
            //
            // Added bonus if the enemy pawn is a passer.
            //
            bb = pHash->bbPasserLocations[FLIP(uColor)] & BBFILE[FILE(c)];
            if (bb)
            {
                cSquare = CoorFromBitBoardRank8ToRank1(&bb);
                EVAL_TERM(uColor,
                          ROOK,
                          c,
                          pos->iScore[uColor],
                          PASSED_PAWN_BY_RANK[FLIP(uColor)][RANK(cSquare)] / 4,
                          "hassles enemy passer");
            }
        }
    }
    else if (0 == pHash->uCountPerFile[FLIP(uColor)][uPawnFile])
    {
        //
        // Half open, no enemy pawn, just a friendly
        //
        u = FILE_DISTANCE(c, pos->cNonPawns[FLIP(uColor)][0]);
        EVAL_TERM(uColor,
                  ROOK,
                  c,
                  pos->iScore[uColor],
                  ROOK_ON_HALF_OPEN_WITH_FRIEND_BY_DIST_FROM_EKING[u],
                  "on half open");

        //
        // See if the friend is a passed pawn and if the rook's in
        // front of it or behind it.
        //
        bb = pHash->bbPasserLocations[uColor] & BBFILE[FILE(c)];
        if (bb)
        {
            //
            // IDEA: Rook behind candidates, helpers or sentries is good
            // because the file may open soon.
            //
            while(IS_ON_BOARD(cSquare = CoorFromBitBoardRank8ToRank1(&bb)))
            {
                switch(uColor)
                {
                    case WHITE:
                        if (cSquare < c)
                        {
                            EVAL_TERM(WHITE,
                                      ROOK,
                                      c,
                                      pos->iScore[WHITE],
                                      ROOK_BEHIND_PASSER_BY_PASSER_RANK[WHITE][RANK(cSquare)],
                                      "behind own passer");
                        }
                        else
                        {
                            EVAL_TERM(WHITE,
                                      ROOK,
                                      c,
                                      pos->iScore[WHITE],
                                      ROOK_LEADS_PASSER_BY_PASSER_RANK[WHITE][RANK(cSquare)],
                                      "in the way of passer");
                        }
                        break;
                    case BLACK:
                        if (cSquare > c)
                        {
                            EVAL_TERM(BLACK,
                                      ROOK,
                                      c,
                                      pos->iScore[BLACK],
                                      ROOK_BEHIND_PASSER_BY_PASSER_RANK[BLACK][RANK(cSquare)],
                                      "behind own passer");
                        }
                        else
                        {
                            EVAL_TERM(BLACK,
                                      ROOK,
                                      c,
                                      pos->iScore[BLACK],
                                      ROOK_LEADS_PASSER_BY_PASSER_RANK[BLACK][RANK(cSquare)],
                                      "in the way of passer");
                        }
                        break;
                }
            }
        }
    }
   
    //
    // Some per-color code
    //
    switch(uColor)
    {
        case WHITE:
            pFriendRook = WHITE_ROOK;

            //
            // Rook on 7th/8th rank with an enemy king back there.
            //
            if ((c < A6) && (pos->cNonPawns[BLACK][0] < A6))
            {
                ASSERT(RANK(c) > 6);
                ASSERT(RANK(pos->cNonPawns[BLACK][0]) > 6);
               
                EVAL_TERM(WHITE,
                          ROOK,
                          c,
                          pos->iScore[WHITE],
                          ROOK_TRAPPING_EKING,
                          "rook trapping enemy king");
            }
            break;
           
        case BLACK:
            pFriendRook = BLACK_ROOK;

            //
            // Rook on 7th/8th rank with an enemy king back there.
            //
            if ((c > H3) && (pos->cNonPawns[WHITE][0] > H3))
            {
                ASSERT(RANK(c) < 3);
                ASSERT(RANK(pos->cNonPawns[WHITE][0]) < 3);
                EVAL_TERM(BLACK,
                          ROOK,
                          c,
                          pos->iScore[BLACK],
                          ROOK_TRAPPING_EKING,
                          "rook trapping enemy king");
            }
            break;
    }
   
    //
    // Rook mobility
    //
    u = uMaxMobility = uTotalMobility = 0;
    ASSERT(g_iRDeltas[u] != 0);
    do
    {
        uCurrentMobility = 0;
        uBit = ROOK_BIT;
        cSquare = c + g_iRDeltas[u];
       
        while(IS_ON_BOARD(cSquare))
        {
            //
            // Twiddle our attack table bits.
            //
            pos->rgSquare[cSquare|8].bvAttacks[uColor].uWholeThing |= uBit;
            ASSERT((cSquare | 8) == (cSquare + 8));

            //
            // What did we hit?
            //
            p = pos->rgSquare[cSquare].pPiece;
            pFun = RMobJumpTable[uColor][p];
            if (TRUE == (*pFun)(pos,
                                cSquare,
                                &uCurrentMobility,
                                &uBit))
            {
                break;
            }
            cSquare += g_iRDeltas[u];
        }
        uTotalMobility += uCurrentMobility;
        ASSERT(uTotalMobility <= 14);
        ASSERT((uMaxMobility & 0x80000000) == 0);
        ASSERT((uCurrentMobility & 0x80000000) == 0);
        uMaxMobility = MAXU(uCurrentMobility, uMaxMobility);
        ASSERT(uMaxMobility <= 7);
        u++;
    }
    while(g_iRDeltas[u] != 0);
    ASSERT(uTotalMobility <= 14);

    ASSERT(pos->uArmyScaler[FLIP(uColor)] <= 31);
    ASSERT(REDUCED_MATERIAL_UP_SCALER[pos->uArmyScaler[FLIP(uColor)]] <= 8);
    i = ROOK_MOBILITY_BY_SQUARES[uTotalMobility];
    i *= (int)(REDUCED_MATERIAL_UP_SCALER[pos->uArmyScaler[FLIP(uColor)]] + 1);
    i /= 8;
    EVAL_TERM(uColor,
              ROOK,
              c,
              pos->iScore[uColor],
              i,
              "rook mobility");
    EVAL_TERM(uColor,
              ROOK,
              c,
              pos->iScore[uColor],
              ROOK_MAX_MOBILITY_IN_A_ROW_BONUS[uMaxMobility],
              "consecutive rook mobility");

    //
    // Look for rooks with no mobility who are under attack.  These
    // pieces are trapped!
    //
    if (uTotalMobility == 0)
    {
        pos->cTrapped[uColor] = c;
    }
    ASSERT((pos->uMinMobility[uColor] & 0x80000000) == 0);
    ASSERT((uTotalMobility & 0x80000000) == 0);
    pos->uMinMobility[uColor] = MINU(pos->uMinMobility[uColor],
                                     uTotalMobility);

    //
    // Rook trapped in the corner by a stupid friendly king?
    //
    if (uTotalMobility < 3)
    {
        ASSERT(IS_VALID_COLOR(uColor));
        if (uColor == WHITE)
        {
            ASSERT(IS_ON_BOARD(c));
            if (RANK1(c))
            {
                cSquare = pos->cNonPawns[WHITE][0];
                ASSERT(IS_ON_BOARD(cSquare));
                if (RANK1(cSquare))
                {
                    if (((cSquare > E1) && (c > cSquare)) ||
                        ((cSquare < D1) && (c < cSquare)))
                    {
                        EVAL_TERM(WHITE,
                                  ROOK,
                                  c,
                                  pos->iScore[WHITE],
                                  KING_TRAPPING_ROOK,
                                  "king trapping rook");
                    }
                }
            }
        }
        else
        {
            ASSERT(uColor == BLACK);
            ASSERT(IS_ON_BOARD(c));
            if (RANK8(c))
            {
                cSquare = pos->cNonPawns[BLACK][0];
                ASSERT(IS_ON_BOARD(cSquare));
               
                if (RANK8(cSquare))
                {
                    if (((cSquare > E8) && (c > cSquare)) ||
                        ((cSquare < D8) && (c < cSquare)))
                    {
                        EVAL_TERM(BLACK,
                                  ROOK,
                                  c,
                                  pos->iScore[BLACK],
                                  KING_TRAPPING_ROOK,
                                  "king trapping rook");
                    }
                }
            }
        }
    } // if low mobility
}
User avatar
Guenther Simon
 
Posts: 794
Joined: 26 Sep 2004, 19:49
Location: Regensburg, Germany

Re: Code of Typhoon is available

Postby Carlos Pagador » 07 Jun 2006, 20:16

Hello,

It works for me under Winboard X with the line:

"Typhoon_100 --Hash 4194304 --PawnHash 131072" /fd=c:\WinBoard\Typhoon_100

But I can't make it work under Arena 1.1. Any suggestions?

Regards,
Carlos
Carlos Pagador
 
Posts: 114
Joined: 11 Nov 2004, 16:16

Re: Code of Typhoon is available

Postby Pablo » 07 Jun 2006, 20:47

Hi G?nther,
I ask for the source codes of Typhoon, so to try to compile a version that can be used in my PC with Windows98SE. The Typhoon version of Dann Corbit is for Windows2000 up.
I hope this a satisfactory answer to your doubts.
Best regards,
Pablo
Pablo
 
Posts: 242
Joined: 26 Sep 2004, 21:57
Location: Santiago-Chile

Re: Code of Typhoon is available

Postby Scott Gasch » 12 Jun 2006, 20:41

FYI: build instructions at

http://wannabe.guru.org/scott/hobbies/chess/build_instructions.html

Let me know if you have troubles. I'm also interested in hearing about the millions of positions where the engine does something totally stupid.

Thx,
Scott
Scott Gasch
 
Posts: 26
Joined: 04 Oct 2005, 04:04
Location: Kirkland, WA

Re: Code of Typhoon is available

Postby Guenther Simon » 18 Jun 2006, 11:18

Scott Gasch wrote:FYI: build instructions at

http://wannabe.guru.org/scott/hobbies/chess/build_instructions.html

Let me know if you have troubles. I'm also interested in hearing about the millions of positions where the engine does something totally stupid.

Thx,
Scott


Hi Scott,

From some own test games and others I have seen it seems
Typhoon has some time management problems in moves/minutes
and sometimes loses on time in the last move before the cut.
It would be nice if you could fix it, otherwise I guess it won't
e.g. pass the Qualification in my RWBC tournaments, because
of lack of 'stabilty'.

Best regards,
Guenther
User avatar
Guenther Simon
 
Posts: 794
Joined: 26 Sep 2004, 19:49
Location: Regensburg, Germany

Re: Code of Typhoon is available

Postby Scott Gasch » 29 Jun 2006, 23:08

I haven't had any problems like you describe but I don't run the engine under those type of time controls very often. Usually it has an increment or has to make all moves in the game in some time amount.

That said, I looked at root.c in the time control code and there could be a bug here... I'll check in a fix today.

If you want, grab a new copy of root.c and rebuild. If you do, let me know if it solves your problem.

Scott
Scott Gasch
 
Posts: 26
Joined: 04 Oct 2005, 04:04
Location: Kirkland, WA

Re: Code of Typhoon is available

Postby Guenther Simon » 30 Jun 2006, 11:56

Scott Gasch wrote:I haven't had any problems like you describe but I don't run the engine under those type of time controls very often. Usually it has an increment or has to make all moves in the game in some time amount.

That said, I looked at root.c in the time control code and there could be a bug here... I'll check in a fix today.

If you want, grab a new copy of root.c and rebuild. If you do, let me know if it solves your problem.

Scott


Hi Scott,

No time losses so far in the 'real' tournament with 40/15, Typhoon
sometimes though has just a few seconds for the last 2 or 3 moves
for the cut.
However in round 5 in the Qualification of RWBC I saw a big bug
regarding hash/tablebase access. In a dead won tablebase endgame,
when it already had announced mate some moves before it blundered
and drew only! It also already had announced in the log that
it had stopped searching, because it had found a forced mate.
Log and debugs are saved. I will send them to you, if you need
them. For now I have just attached an excerpt with the
critical moves.

(Note: all 4 men plus all R vs. RX 5 men are allowed and added
correctly as a system variable, all tablebase files are verified as ok.
P4 2.66GHz 512DDR Ram, WB 4.27x, hash around 128-160MB max
per program, tc 40/15)

Best regards,
Guenther

8/8/8/8/4p3/5k2/3K3P/8 b - - 0 50
Typhoon played 50...Kg4??

[diag]8/8/8/8/4p3/5k2/3K3P/8 b - - 0 50[/diag]

[Event "RWBC_Qualification_7th_Edition"]
[Site "ESPRESSO"]
[Date "2006.06.29"]
[Round "4"]
[Number "100"]
[White "JSBam_052"]
[Black "Typhoon_100"]
[Result "1/2-1/2"]
[TimeControl "40/900"]
[Annotator "8. +0.27 8... -0.63"]

1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 g6 6. Be3 Bg7 7. f3 Nc6 8.
Bb5 {+0.27/8} Bd7 {-0.63/10} 9. O-O {+0.25/7} O-O {-0.46/11} 10.
Nxc6 {+0.19/8} Bxc6 {-0.35/11} 11. Qd3 {+0.17/9} Nd7 {-0.30/12} 12.
Bxc6 {+0.13/8} bxc6 13. Rab1 {+0.13/8} Qa5 {-0.08/11} 14. b4 {+0.18/9} Qh5
15. f4 {+0.24/8} Rfd8 {-0.12/10} 16. Rf3 {+0.20/8} a5 {-0.15/10} 17.
Rh3 {+0.18/8} Qg4 {+0.00/11} 18. bxa5 {+0.12/8} Rxa5 {+0.00/11} 19.
e5 {+0.11/7} Ra3 {+0.32/10} 20. Qd2 {+0.15/7} Qe6 {+0.54/10} 21.
Rb7 {-0.26/8} g5 {+0.70/10} 22. Rc7 {-0.52/7} gxf4 {+1.34/10} 23.
Bxf4 {-0.94/7} Nxe5 {+1.89/10} 24. Bxe5 {-0.82/6} Qxe5 {+2.37/10} 25.
Rxc6 {-0.95/9} Qd4+ {+2.41/11} 26. Qxd4 {-0.98/11} Bxd4+ {+2.34/12} 27.
Kf1 {-0.91/11} Be5 {+2.34/11} 28. Rc4 {-0.91/9} e6 {+2.62/10} 29.
Rc6 {-0.95/9} Rda8 {+2.66/11} 30. Ke2 {-1.08/9} d5 {+2.76/10} 31.
Kd1 {-1.22/8} Kg7 {+2.97/11} 32. Rc5 {-1.36/9} f6 {+2.94/10} 33.
Rc6 {-1.29/9} Rxc3 {+3.14/12} 34. Rhxc3 {-0.92/10} Bxc3 {+3.13/13} 35.
Rc7+ {-0.93/10} Kg6 {+3.28/11} 36. Rxc3 {-0.97/9} e5 {+1.39/10} 37.
Rg3+ {+0.07/9} Kf7 {+1.42/10} 38. Rh3 {+0.00/9} Rxa2 {+1.43/10} 39.
Rxh7+ {+0.01/8} Ke6 {+1.43/9} 40. Kd2 {-0.04/9} e4 41. Rh8 {+0.02/8}
d4 {+1.64/10} 42. Re8+ {+0.10/9} Kf5 {+1.78/11} 43. g4+ {+0.00/10}
Kf4 {+2.42/11} 44. Re6 {-0.09/9} d3 {+2.59/11} 45. Rxf6+ {-0.06/9}
Kg5 {+1.52/12} 46. Rc6 {-0.08/10} Kxg4 {+2.80/11} 47. Rc4 {-0.14/10}
Rxc2+ {+327.38/12} 48. Rxc2 {-9.71/15} dxc2 {+327.40/15} 49.
Kxc2 {-9.66/15} Kf3 50. Kd2 {-9.71/13} Kg4?? 51. Ke3 {+0.00/17} Kf5 52.
h3 {+0.01/16} Ke5 53. h4 {+0.02/17} Kf5 54. h5 {+0.01/18} Ke5 55.
h6 {+0.08/14} Kf6 56. h7 {+0.07/20} Kg7 57. h8=Q+ {+0.06/23} Kxh8 58.
Kxe4 {+0.00/23} Kg8
{User adjudication} 1/2-1/2


Log excerpt for the decisive part:
Code: Select all
---------------------------------------------
Searched for  21.1 seconds, saw 10715194 nodes (7214867 qnodes) (508705 nps).
tellothers d11, +2.80,  21.1s, 508705 nps, PV=
Total hash hit rate: 65.219 percent.
Useful hash hit rate: 40.931 percent.
Pawn hash hit rate: 99.999 percent.
Null move cutoff rate was 95.651 percent.
First move beta cutoff rate was 95.956 percent.
First lazy eval rate was 60.080 percent.
Extensions:
  Checking move: 700873
  One Legal move: 12636
  QCheckExtend: 7267
  No Legal King moves: 2
  Multicheck: 4835
  Pawn push: 153792
  Mate threat: 28
  Zugzwang pos: 0
  Singular reply: 1824
  Endgame: 6000
  Recapture: 7996
white(47): white(47): white(47): Soft time limit: 21.0 seconds.
Hard time limit: 84.0 seconds.
 7    258    30 112471       Kf4 h4 dxc2 Kc1 Ra1+ Kxc2 Rh1 Rc3 Rh2+ Kb3 Rxh4
 8    258    60 163217       Kf4 h4 dxc2 Kc1 Ra1+ Kxc2 Rh1 Rc3 Rh2+ Kb3 Rxh4
 8    336    69 198759       Rxc2+! ++
 8    490    69 198872       Rxc2+! ++
 8    894    69 199276       Rxc2+! ++
 8   1059    70 201461       Rxc2+ Rxc2 dxc2 Kc1 e3 Kb2 Kf3 Kxc2 e2 Kd3 Kf2
 9   1136    90 261457       Rxc2+! ++
 9   1163    96 269726       Rxc2+ Rxc2 dxc2 h3+ Kxh3 Kxc2 Kg3 Kd2 Kf2 Kc3 e3 Kd4
10   1239   173 578241       Rxc2+! ++
10   1227   176 588529       Rxc2+ Rxc2 dxc2 h3+ Kxh3 Kxc2 Kg3 Kd2 Kf2 Kc3 e3 Kd3 e2
11   1302   370 1287710      Rxc2+! ++
11   1452   373 1304274      Rxc2+! ++
11   1827   380 1340288      Rxc2+! ++
11  32738   574 2557895      Rxc2+ Rxc2 dxc2 h3+ Kh4 Kxc2 <REC>
12  32738  1116 5115985      Rxc2+ Rxc2 dxc2 h3+ Kh4 Kxc2 <REC>
SOFT TIMER (21.2 sec) --> stop searching now
move Rxc2+
---------------------------------------------
Searched for  21.2 seconds, saw 9994328 nodes (6682912 qnodes) (470493 nps).
tellothers d12, +MATE14,  21.2s, 470493 nps, PV=
Total hash hit rate: 71.652 percent.
Useful hash hit rate: 46.027 percent.
Pawn hash hit rate: 100.000 percent.
Null move cutoff rate was 81.985 percent.
First move beta cutoff rate was 97.517 percent.
First lazy eval rate was 99.126 percent.
Extensions:
  Checking move: 602800
  One Legal move: 14641
  QCheckExtend: 145407
  No Legal King moves: 3
  Multicheck: 1004
  Pawn push: 102073
  Mate threat: 0
  Zugzwang pos: 0
  Singular reply: 115
  Endgame: 324
  Recapture: 331
white(48): white(48): white(48): Soft time limit: 21.0 seconds.
Hard time limit: 84.0 seconds.
10  32738    51 268229       dxc2! ++
10  32738    65 358082       dxc2 h3+ Kh4 Kxc2 <REC>
11  32738   108 577957       dxc2 h3+ Kh4 Kxc2 <REC>
12  32738   203 1059301      dxc2 h3+ Kh4 Kxc2 <REC>
13  32740   502 2675803      dxc2 h3+ Kf4 Kxc2 <REC>
14  32740   841 4564382      dxc2 Kxc2 <REC>
15  32740  1599 8701511      dxc2 Kxc2 <REC>
SOFT TIMER (32.5 sec) --> stop searching now
move dxc2
---------------------------------------------
Searched for  32.5 seconds, saw 19824887 nodes (15869794 qnodes) (609127 nps).
tellothers d15, +MATE13,  32.5s, 609127 nps, PV=
Total hash hit rate: 82.320 percent.
Useful hash hit rate: 34.940 percent.
Pawn hash hit rate: 100.000 percent.
Null move cutoff rate was 99.778 percent.
First move beta cutoff rate was 92.910 percent.
First lazy eval rate was 99.998 percent.
Extensions:
  Checking move: 1709649
  One Legal move: 179994
  QCheckExtend: 1262200
  No Legal King moves: 32
  Multicheck: 2865
  Pawn push: 95182
  Mate threat: 0
  Zugzwang pos: 0
  Singular reply: 0
  Endgame: 7
  Recapture: 0
white(49): white(49): white(49): Soft time limit: 20.6 seconds.
Hard time limit: 81.6 seconds.
FORCED MATE --> stop searching now
move Kf3
---------------------------------------------
Searched for   0.0 seconds, saw 242 nodes (12 qnodes) (  6092 nps).
tellothers d26, +MATE13,  0.0s,   6092 nps, PV=
Total hash hit rate: 60.199 percent.
Useful hash hit rate: 5.970 percent.
Pawn hash hit rate: 100.000 percent.
Null move cutoff rate was -1.#IO percent.
First move beta cutoff rate was 50.000 percent.
First lazy eval rate was 0.000 percent.
Extensions:
  Checking move: 0
  One Legal move: 0
  QCheckExtend: 0
  No Legal King moves: 0
  Multicheck: 0
  Pawn push: 0
  Mate threat: 0
  Zugzwang pos: 0
  Singular reply: 0
  Endgame: 0
  Recapture: 0
white(50): white(50): white(50): Soft time limit: 21.3 seconds.
Hard time limit: 85.3 seconds.
DEPTH LIMIT --> stop searching now
move Kg4
User avatar
Guenther Simon
 
Posts: 794
Joined: 26 Sep 2004, 19:49
Location: Regensburg, Germany

Next

Return to Winboard and related Topics

Who is online

Users browsing this forum: No registered users and 36 guests