AG Schachprogrammierung FUSC - PowerPoint PPT Presentation

1 / 18
About This Presentation
Title:

AG Schachprogrammierung FUSC

Description:

Content. Overview Introduction to the 'AG Schachprogrammierung' ... wn. evaluation. material. Zentrierung der Figuren. offene Linien. offene Diagonalen. L uferpaar ... – PowerPoint PPT presentation

Number of Views:26
Avg rating:3.0/5.0
Slides: 19
Provided by: mist2
Category:

less

Transcript and Presenter's Notes

Title: AG Schachprogrammierung FUSC


1
AG SchachprogrammierungFUSC april 2005
FUSC project group
2
Content
Overview Introduction to the AG
Schachprogrammierung How does FUSc
represent the chessboard ? FUSc goes
internet / the future of FUSc
Schachprogrammier AG
april 2005
3
Foundation of the AG
Foundation of the AG C, OpenSource first
version (V 1.03) quiescent search,
killermoves, hashtables, heuristics,
iterative search first version playing on the
internet (V 1.06) better evaluation first
official online-tournament first
victory Lange Nacht der Wissenschaften (V
1.07) documentation DarkFUSc, version
1.0 rotated bitboards DarkFUSc new evaluation
(including an automatic classification of
different types of chess positions)
14.Oktober 2002 1.März 2003 1.Juni
2003 11.Juni 2003 14.Juni 2003 january
2004 july 2004
Schachprogrammier AG
april 2005
4
Foundation of the AG
Table of results 1.Dauth, Benjamin  2290
2.Düster, Christian  2100 3.Domingo,
Miguel  2038 4.Lane, Robin 
1300 5.Steffen, Rico  1971 6.Kuprat,
Thomas  1975 7.Burghardt, Michael 
1975 8.Martin, Mario  1900 9.Trösch,
Thomas  2166 10.FUSC V1.07 
1400 11.Kärcher, David  1368 12.Minski,
Martin  2024 13.Rauch, Felix 
1350 14.Schaller, Peter  1750 15.Wölter,
Ulrich  1300 16.Remmo, Abdulrahim 1300
Schachprogrammier AG
april 2005
5
Foundation of the AG
Schachprogrammier AG
april 2005
6
Foundation of the AG
Table of results
Schachprogrammier AG
april 2005
7
Project group
homepage http//page.mi.fu-berlin.de/fusch/ m
embership all students (even from other
universities) are invited to participate, a
mailing list is used for
co-ordination some pictures
Maro Bader, Andre Rauschenbach, Johannes Buchner,
Andreas Gropp, Christian Düster (HU), Falko
Krause, Christian Ehrlich, Ben-Fillippo
Krippendorff und Marco Block
Schachprogrammier AG
april 2005
8
Project group
developing enviroment
  • - MS Visual Studio 2003
  • .NET V1.1
  • CVS

Schachprogrammier AG
april 2005
9
Inside the chess engine
Schachprogrammier AG
april 2005
10
FUSc board represenation
Schachprogrammier AG
april 2005
11
BitBoards
the board as bitboard
very fast and efficient move generation
evaluation parameters can easily be translated
in matrices of bitboards (e.g. king safety) -
no official standards
Schachprogrammier AG
april 2005
12
BitBoards
example knightmovesd3 AND opponent-pieces
00000000 00000000 00000000
00000000 00000000 00000000
00000000 00000000 00000000
00101000 00000000 00000000
01000100 00000000 gt 00000000
000X0000 00000000 000X0000
01000100 11111111 01000100
00101000 00000000 00000000
  • concretly
  • idea compute all possible knight moves from
    field d3 and save them in a bitboard
  • knightmovesd3 AND emptyFields
  • enhanchement knightmovesd3 AND
    opponentPieces generates capturing moves
  • problem the (simple) bitboard representation is
    limited to non-sliding pieces like knight, king
    etc.

Schachprogrammier AG
april 2005
13
Rotated BitBoards
Flipped board (90 to the right)
  • idea 1 compute the moves for sliding pieces
    depending on the relevant line/diagonal in
    advance
  • Idee 2 saving flipped representations of the
    board as rotated bitboards in order for the
    lines/diagonals to be located sequentially in
    one single byte

Schachprogrammier AG
april 2005
14
Bitboards
Generating pawn captures
// WHITE PAWNS (captures right) tos (
(board.pawns NOT_RIGHT_EDGE from_squares) ltlt
9) board.b_occ froms tos gtgt 9 while (from
GET_LSB(froms)) board.w_attacks
from movelistmovenr.from
from movelistmovenr.to GET_LSB(tos)
movelistmovenr.det.ll
0 movelistmovenr.det.ail.piece
PAWN movelistmovenr.det.ail.flags
NORMAL_CAPTURE movenr CLEAR_LSB(tos)
CLEAR_LSB(froms)
Schachprogrammier AG
april 2005
15
Bitboards
Generating knight moves
// WHITE KNIGHT froms board.knights
from_squares while (from GET_LSB(froms))
from_nr get_LSB_nr(from) tos
knight_movesfrom_nr to_squares while (to
GET_LSB(tos)) board.w_attacks
from movelistmovenr.from
from movelistmovenr.to to
movelistmovenr.det.ll 0 movelistmove
nr.det.ail.piece KNIGHT movelistmovenr.de
t.ail.from_nr from_nr if (board.b_occ to)
movelistmovenr.det.ail.flags
NORMAL_CAPTURE movenr CLEAR_LSB(tos
) CLEAR_LSB(froms)
Schachprogrammier AG
april 2005
16
Bitboards
Generating rook moves
// WHITE ROOK froms board.rooks
from_squares while (from GET_LSB(froms))
from_nr get_LSB_nr(from) rank_pattern
board.occ.bytefrom_nr gtgt 3 file_pattern
board.occ_l90.bytel90_to_normalfrom_nr gtgt
3 tos (rank_movesfrom_nrrank_pattern
file_movesfrom_nrfile_pattern)
to_squares while (to GET_LSB(tos))
board.w_attacks from movelistmovenr.
from from movelistmovenr.to to
movelistmovenr.det.ll
0 movelistmovenr.det.ail.piece
ROOK movelistmovenr.det.ail.from_nr
from_nr if (board.b_occ to)
movelistmovenr.det.ail.flags
NORMAL_CAPTURE movenr CLEAR_LSB(tos
) CLEAR_LSB(froms)
Schachprogrammier AG
april 2005
17
Research ideas
planning in computer chess prefer moves that
correspond to a strategic plan application of
neuronal networks prediction of moves,
evaluation gt development of plans reinforcement
learning recalibration of the evaluation
vector gt learning of plans FUSc goes linux and
64bit porting to linux with mono, optimizing
for AMD64 FUSc goes pocket pc porting to
.NET compact edition
Schachprogrammier AG
april 2005
18
The end
thanks for listening ...
Schachprogrammier AG
april 2005
Write a Comment
User Comments (0)
About PowerShow.com