Author: Mike Byrne
Date: 21:50:37 09/02/04
Go up one level in this thread
On September 03, 2004 at 00:43:57, Stuart Cracraft wrote:
>On September 02, 2004 at 23:03:27, Mike Byrne wrote:
>
>>On September 02, 2004 at 21:55:07, David Dahlem wrote:
>>
>>>Can we expect a Crafty 19.17 SE compile by Mike Byrne anytime soon?
>>>
>>>Thanks
>>>Dave
>>
>>
>>the ink is hardly dried on the source ...but the answer is yes - there will be
>>a Crafty 19.17 SE soon ...stay tuned ...
>
>What is Crafty SE?
readme from Crafty 19.15 SE
July 15th, 2004
Crafty v19.15 SE Ramat-Gan
Crafty v19.15 SE Ramat-Gan is a modified version of Crafty, copyrighted
by Bob Hyatt, that participated in the 12 World Computer Chess
Championships held recently at Ramat-Gan, Israel. I consider Bob Hyatt
a dear friend and one of the great computer programmers and thinkers of
all time. He has been involved in computer chess programming for over
30 years and is considered by many a "Hall of Famer".
It is with his permission and his great generosity that I am permitted
to distribute for free his chess program Crafty with a few tweaks of my
own. For those that wonder what SE stands for , it is simply
Special Edition.
There are now over 200 subscribers from over 30 countries to the
Crafty SE series. It is available by sending me an e-mail with words
"include" in the subject heading. You may remove yourself from the
anonymous mailing list by sending me an e-mail with the words "remove"
in the subject heading. Also, should an email bounce back to me, you
are also removed from the list. I have been advised that my Crafty SE
downloads can be as high as 1000 per month.
You may find a copy of Crafty SE at Peter Skinner's Crafty site
http://www.webkikr.com/news.php or at Leo Dijksman's website
http://wbec-ridderkerk.nl/
If you have any Crafty tips or tricks, please e-mail them to me and I
will include them in the next edition. All contributors will be
recognized unless you wish to classified as an "anonymous" contributor.
Crafty is copyrighted by Bob Hyatt. Please type "help copyright" at the command
prompt to read the copyright.
Hit the return key to review the SE command options included with
Crafty v19.15 SE Ramat-Ga! In the future, you may type “help SE commands”.
Please enjoy Crafty v19.15 SE Ramat-Ga and drop me a line when you a chance.
Best,
Michael Byrne
mfbyrne_pa@msn.com
SE commands
arena.......................... sets the correct search time when
using Crafty with wb2uci in the Arena
GUI (use with "st")
boarddgt....................... use with DGT board so Crafty will NOT
think it is playing a computer using
Malin’s dgt2wb adapter.
detect......................... turn detectdraw function on or off.
dm............................. turn delay move on or off.
dnyint......................... varies the intensity level dynamically
based on how well you are playing.
dsd............................ varies the search depth dynamically
based on how well you are playing.
infox.......................... provides extended Crafty SE info.
intensity...................... sets the CPU usage, uses a busy loop.
keeper......................... keeps the Jekyll& Hyatt personality.
krafty <personality>........... load krafty personalities.
krafty jekyll&hyatt.............play different crafty settings
at random.
krafty ranper...................play different krafty personalities
at random.
pers_load...................... loads a Jekyll& Hyatt personality.
pi............................. calculate pi using random numbers.
rand........................... generate random numbers.
rint........................... varies the intensity level randomly.
rsd............................ varies the search depth randomly.
SE............................. turn SE code on or off.
uciextension................... set extensions for UCI interface.
value.......................... set piece values.
<past releases, info may be helpful>
==============================================================
May 16, 2004
Crafty 19.13 SE Release
With great pleasure, I announce the release of Crafty 19.13 SE (Special
Edition).
This modified chess program is based on Bob Hyatt’s great chess program “Crafty”
and is distributed with his permission. See the bottom of this message for his
Copyright notice. In case you do not know, Bob is one of the all time great
chess programmers, and when they get around to starting the “Chess Programmers
Hall of Fame”, he will certainly be inducted in the inaugural class as one the
all time great contributors to the science of chess programming.
In terms of my personal pastimes, I enjoy computer chess best and Bob Hyatt has
been one of the major reasons why I have enjoyed it so much. A “Special Thanks”
to you Bob, from all of us computer chess enthusiasts.
As in the past, this is being automatically email to those who have signed us
for the distribution of these modified Crafty SE release. Email to
mfbyrne_pa@msn.com with the word “include”. If your email changes, just send me
another email. If for some reason you have e-mailed me and do not get it within
24 hours, try another email after 24 hours. If after 24 hours, you still do not
have it (please do wait for the 24 hours) – post here underneath this message
with your e-mail address and the request for the copy. Please be patient, as my
schedule may not permit me to check this forum as frequently as I would like to.
My spam filter is very aggressive and I may have to add you to my safe list.
The good news is that I now get no spam at all, but I do miss a legitimate email
now and then. But please make sure your email address can take a 1 MB file – if
it bounces back as undeliverable, your address gets deleted.
On a disappointing note, I lost my system this week and I did not have a backup
of Intel 7 Compiler – since I have moved to Intel 8 – a replacement executable
for me is not available. My distributed exe will work on almost all processors,
but it is optimized best for the Intel 4 ( I do not have an AMD machine -
sorry).
The upside is that e-mail is lot smaller!
Now for the good news.
* First we have 4 new GM personalities, bringing total number of GM
personalities up to 24.
Gligoric -- second only to Korchnoi in recorded games played, he is my all-time
favorite chess author. He is listed in the top 15 for 15 straight years – 1949
to 1964. He is the inventor of the King’ Indian Mar del Plata opening – an
opening that computers do not play well.
Korchnoi – in my view, the best player ever not to be World Champion.
Polgar - three sisters that have made Chess History, with Judith, the youngest,
a bona fide contender for the World Championship. I would love to see her
maker chess history and take the title.
Staunton - perhaps more famous for the chess pieces that he promoted , he was
one of the strongest chess player in the pre World Championship era.
* New Command “rsd” – Random Search Depth
The new "rsd" command will vary the search depth randomly based on the user
inputed values. Place in the crafty.rc file – do not type the quotes.
Examples:
“rsd 2 5 5 10” will randomly select between 2 and 5 plies in the opening/middle
and between 5 & 10 in the endgame.
“rsd 3 3 5 10” will search 3 plies in the opening/middle and between 5 & 10 in
the
endgame.
“rsd 1 5 8 8” will randomly select between 1 and 5 plies in the opening/middle
and
search 8 plies in the endgame.
“rsd 0 x 0 x “ (x any number) will not be limited in search by search depth at
all
in opening/middle/endgame
“rsd 1 5 0 x “(x any number) will randomly select between 1 and 5 plies in the
opening/middle and not be limited in endgame
“rsd 3 3 5 5” will search 3 plies in the opening/middle and search 5 plies in
the
endgame.
“rsd 3 5 3 5” will randomly select between 3 and 5 plies in the opening/middle
and
endgame
"rsd 3 3 3 3" == "sd 3"
* New command "dsd" sets a dynamic search depth depending on how Crafty is
evaluating the game - increasing or decreasing the search depth. It will
increase the search depth if losing or decrease it if winning. Designed for
playing Crafty with a set search depth or using the new “rsd” command above.
May be used with GM personalities.
Takes the argumenets “on” and “off”
Example: Place in the crafty.rc file – do not type the quotes.
“dsd on”
* New Command “rint” Random Intensity Command sets a random intensity level
for each move.
It takes two arguments – a low value and a high value. 10000= 100% processing
power ; 500 – 5% processing power; 100 – 1% processing power; etc. Crafty will
select a random value between range and that will be the processing power used
for that move. Note: These weakening options are also designed to be used with
“dm on” or “Delay Move “ if you wish Crafty not to move instantly. “dm on” will
have Crafty used the appropriate time per the game time selected and yet not
have Crafty used all it’s time calculating on a position during this time. It
will automatically self adjust itself in the game depending on the time you
select.
Example: Place in the crafty.rc file – do not type the quotes.
usage: rint <low intensity> <high intensity>
“rint 50 100”
* New Command “dynint” Dymanic Intensity Command
(Note : “dynint” must be used with either “rint” OR “intensity”
"dnyint" command sets a dynamic intensity level depending how Crafty is
evaluating the game - increasing or decreasing the intensity depending on the
score of the game as Crafty sees it.
“dnyint” takes up to 4 arguments, the first two , a minimum and maximum
intensity settings are required. If you do not enter the 3rd and 4th arguments
for losing and winning thresholds in centipawns, the 3rd and 4th arguments will
fall to a default of 50 and 150 centipawns respectively.
Example: Place in the crafty.rc file – do not type the quotes.
usage: dynint <min intensity> <max intensity> <losing threshold> <winning
threshold>
“dnyint 20 5000 50 150” valid ranges for the two arguments are between 1 and
10000.
The 3rd and 4th arguments tell crafty when to increase or decrease the intensity
based on the score. If the losing threshold is reached, Crafty will double the
intensity and keeps doubling the intensity for reaching every multiple of the
initial score until the max intensity of 10,000 is reached . The winning
threshold works in the same fashion.
“dnyint 20 5000 50 150” using this setting , Crafty will double the intensity
once it believes it is 50 points behind. At 100 points behind, it will double
the intensity again or be 4x of the original intensity. One it reaches 200
points behind it will double the intensity again or be 8x of the original
intensity set by the user through the “intensity” command or set by the “rint”
(random intensity ) command. It will continue in that doubling sequence for
every multiple reached of the losing threshold until the maximum intensity of
5000 (50% CPU processing power) is reached. The winning threshold works in the
same manner except it is cutting in half the intensity for every multiple of the
winning threshold reached. You will note the defaults are 50 points
(centipawns) for the losing threshold and 150 points for the winning threshold .
So the losing threshold defaults are quick to kick in to strengthen Crafty
then the winning threshold are to weaken Crafty.
One interesting “dynint” setting to try is this:
“dnyint 1 10000 1 1” In this setting – Crafty will reach full intensity
either way within 28 centipawns (or less) of each other. If Crafty is up by 14
centipawns, it will drop down to the lowest intensity setting of 1, if is behind
by 14 centipawns it will be playing full strength. That is because it is
doubling the intensity for every centipawns it is behind and 2^14 takes to
Crafty to 10000 intensity (1000% CPU processing power). So as long as Crafty is
winning, it is playing a weak game – but should it sense it is behind – it will
take no prisoners until it is winning again.
* The intensity command was modified to accept the “move now” command (?).
As a reminder the intensity command controls how long Crafty will evaluate at a
position and still use all of its allotted time before declaring its move. It
was specifically designed to be used with the “dm” command to prevent Crafty
from moving instantaneously while playing on a weaker setting. It will use all
of allotted clock time, but just a position of its allotted time on actually
calculating on the position.
10000= 100% processing power ; 500 – 5% processing power; 100 – 1% processing
power; etc. Crafty will select a random value between range and that will be
the processing power used for that move. Note: These weakening options are
also designed to be used with “dm on” or Delay Move command.
* A user may now override all or just a few of the random evaluation settings
with you’re your evaluation settings. For example, say you always want to have
the asymmetry valued at 0. Type "evaluation asymmetry 0" in the crafty.rc
file or command prompt and when you used "Jekyll and Hyatt" random setting
personality, you will always get the value of “0” for the asymmetry.
"evaluation bscale 100" would lock the block pawn scale at 100. All the other
evaluation factors will still be chosen at random. Type “help evaluation” at
the command prompt to learn more about setting evaluation settings.
“dgtboard” command was changed to “boarddgt” , It takes the arguments “on” and
“off”. It was changed because it superceded the “display” command, which I did
not like.
( I like just being able to hit “d” to see the board in command mode. )
The purpose is to activate speech while using Crafty with a DGT board in
Winboard.
Example “boarddgt on”
* Logo is Smarty Jones winning the Kentucky Derby. The horse is from a
Philadelphia area racetrack. Best of luck to Smarty in the Belmont!
* Other cosmetic changes that you may or may noticed. e.g. Winboard/Arena will
now display the personality correctly in the GUI, addition info in the logs
regarding the new commands above etc.
* Included is one sample crafty.rc file.
* Crafty SE is a direct derivative of "Crafty" and both Crafty and Crafty SE
are owned and copyrighted by Dr. Robert Hyatt. It is with Dr. Hyatt's
permission that I am able to distribute this software for free. At the bottom
of this file is the text of the Crafty Copyright notice.
Best Regards,
Michael Byrne
==============================================================
May 1, 2004
What’s New in Crafty 19.12 SE Update!
Some of the enhancements below were suggested by Crafty SE users!
* The new "Jekyll and Hyde" personality was changed to "Jekyll and Hyatt" to
honor, with a light touch of humor, the author of Crafty - Bob Hyatt. Also ,
the default “keeper” setting is now “off”, not “on”.
* A new GM personality “Najdorf” that will mirror the moves played by the great
GM Najdorf from 9….Bh2+ to the end of the game. (saved for one insignificant
transposition) if provided sufficient time. On my machine, 10 minutes was the
max to find any one move.
[Event ""]
[Site "Varsovia"]
[Date "1935"]
[Round "-"]
[White "Gluecksberg"]
[Black "Najdorf Miguel"]
[Result "0-1"]
1. d4 f5 2. c4 Nf6 3. Nc3 e6 4. Nf3 d5 5. e3 c6 6. Bd3 Bd6 7. O-O O-O 8.Ne2 Nbd7
9. Ng5 Bxh2+ 10. Kh1 Ng4 11. f4 Qe8 12. g3 Qh5! 13. Kg2 Bg1!! 14.Nxg1 Qh2+ 15.
Kf3 e5!! 16. dxe5 Ndxe5!+ 17. fxe5 Nxe5!+ 18. Kf4 Ng6+ 19. Kf3 f4 20. exf4 Bg4!+
21. Kxg4 Ne5+ 22. fxe5 h5#
· Crafty SE will now display the personality name in Arena and Winboard when
used as a winboard engine. It will also be picked up automatically in the pgn
file.
* Crafty works with Odd Gunnar Malin DGT board adapter. Using the adapter,
Crafty will think it’s playing a computer. Add the command “dgtboard on” and
Crafty will think it’s playing a non computer. There is also “movespeech” cmd
file enclosed that will enable Crafty to speak the moves (audio) to you through
winboard and also using the DGt board.
------text file----named “movepseech.cmd” in the enclosed zip file-------------
@set !=||(set !=1&start "%~dpnx0" /min cmd /c %0 %*&set !=&goto :EOF)
start /min d:\crafty\speak.exe %1
------Edit with text editor where you have “speak.exe” if you wish to use
audio move
announcement--------------------------------------------------------------------------
The first line helps minimize the Command screen popup flashing while using
speech function in Winboard. It also helps to have the command prompt open.
The second line should be pointed to where you have the speak.exe. (Obtain from
here ftp://ftp.cis.uab.edu/pub/hyatt/common/ winspeak.zip)
The *wave files are canbe obtained from the Arena site or the DGT site.
The *.wav files should be in Sounds\Eng subfolder in the crafty folder even if
not English.
* "ranper" was fixed (did not work properly), changed (it is now a "krafty
extension" and will change every game (as opposed to every move). Most users
did not like it changing every move, myself included.
Example "krafty ranper 0 42" will select one of 43 personalities at random for
every game.
Example "krafty ranper 23 42" will select one of 20 GM personalities at random
for every game.
Etc.
*The random settings selected by "Jekyll & Hyatt" personality ("krafty jekyll"
at the command prompt or crafty.rc file will now be captured at the beginning of
every log along with a “command string” for easy copying and pasting into the
crafty.rc file for further testing of new settings that look promising. The
command is “pers_load” and requires exactly 27 parameters. The argument order
is this:
keeper value (1 means to retain these settings)
queen value
rook value
bishop value
knight value
pawn value
book random (0=off)
book selection width
delay time limit,(0=off:1=on)
draw score setting
search depth
special edition code (1=off:0=on)
time usage setting (0=normal)
window beta initial setting
king safety asymmetry
king safety scale
king safety tropism
lazy setting (not activated)
pass pawn scale
pawn block scale
pawn scale
incheck extension setting
mate extension setting
one response extension setting
pawn push extension setting
recapture extension setting
start extension setting
The command string in the log file will be in the correct order. It is not
recommended that edit the string as there are no edit checks with this command
to check for valid inputs (since it was designed for just copy and paste by most
users). However the astute Crafty users may find this a useful tool to change
Crafty parameters with just one command.
* A new randomness factor for the "Jekyll & Hyatt" personality that will act a
turn dial to increase randomness of up to 50% of piece values. The initial
"Jekyll & Hyatt" personality was a randomness of plus or minus 10% of piece
values. The use can now increase this up to 50% in increments of 1%. If you do
not set it, need not to worry; you will get the standard +- 10%. For randomness
of +- 5%, use krafty Jekyll 5; +-20%, you would use "krafty jekyll 20"; +- 33%
"krafty jekyll 33" etc up to 50%.. Note : once a users increase randomeness to
above 30%, you may have situations where the queen is valued less than the rook
and it may play odd Queen sacrifices.
* The "Jekyll and Hyatt" personality will no longer contain settings for search
depth, so you may use this personality at the search depth of your choosing.
* A user may now override all or just a few of the random pieces settings with
your piece setting of you own. For example, say you always want to have the
queen valued at 900. Type "value queen 900" in the crafty.rc file or command
prompt and when you used "Jekyll and Hyatt" random setting personality, you will
always get the value for 900 for the queen. "value rook 500" would lock the
rook at 500 etc. All the other piece values will still be chosen at random.
* General improvement in feedback when using some of 'extended Crafty SE"
commands (both at the console level and in the logs).
==============================================
April 22, 2004 Crafty 19.12 SE
The newest personality is “Jekyll & Hyde”. As the name implies, “Jekyll & Hyde”
is a dynamic personality that changes its settings randomly after every game
within precise parameters. The objective was to introduce more variety in play
without the use changing any of the parameters. There is also a new “keeper”
function that will allow the user have a random personality startup with every
Crafty startup, but it will not change the settings until the user decides to
change the setting by selecting a different personality or on the next startup.
Amazing, Crafty in this random mode , still achieves very good results – scoring
42% against Ruffian 2.0,2 in a 100 game match.
The default is “keeper on”, to ensure randomness every game, type “keeper off”
in the crafty.rc file. The crafty.rc file should always end with the word
“exit” and a blank line after the exit line to ensure execution.
You also have Crafty SE play any of the predefined personalities randomly or
within a range of personalities. The command “ranper <low personality #> <low
personality #>” typed on the crafty.rc file. For example, to have Crafty cycle
through all the personalities randomly, type “ranper 0 41” in the crafty.rc
file. To play just the GM personalities randomly, type “ranper 23 41” in the
crafty.rc file. To play just the middle range personalities randomly, i.e,
‘warren through 2000”, type “ranper 6 13” in the crafty.rc file.
All of this “randomness” was incorporated by using state of the art random
number generation (RNG) code.
The RNG engine is based on the renowned work of Makoto Matsumoto and Takuji
Nishimura. The name of their RNG engine is the "Mersenne Twister"
(originally known as the named "Primitive Twisted Generalized Feedback Shift
Register Sequence" quite a mouthful - thus the Mersenne Twister was born (Since
it uses Mersenne primes, and it shows that it has its ancestor "Twisted GFSR"
and it conveniently hides the initials of the inventors).
more to read here: http://www.math.keio.ac.jp/~matumoto/emt.html
The code I am using is based on Shawn Cokus optimized source:
http://www.math.keio.ac.jp/~matumoto/ver980409.html
Here is his source - licensing is governed by this GNU Library General Public
License:
// This library is free software; you can redistribute it and/or modify it
// under the terms of the GNU Library General Public License as published by
// the Free Software Foundation (either version 2 of the License or, at your
// option, any later version).
http://www.math.keio.ac.jp/~matumoto/cokus.c
The RNG is automically seeded by time in milliseconds, so even quick successive
generations will generate different random numbers. I also added some random
number toys that are easy to access through the Crafty console window.
1. Approximate value of Pi by using random numbers (a Monte Carlo simulation
that essentially is a virtual 1/4 dart board and it calculates the number of
darts thrown in the arc and out side the arc to estimate Pi.
"pi 1000" equals calculate pi on 1000 iterations (dart throws) (or two thousand
random numbers - since each iteration is essentially two random numbers used
for the x and y axis. If (x^2+y^2) is less than equal to 1 on a 1 inch
dartboard with a quarter circle - it is within the arc and can be counted as a
hit. At the end, 4*hits/throws= ~Pi , if the throws were randomly generated.
2. “random” (or “rand”) <low value> <high value> <iterations or number of
random
numbers>
Low value must be 0 or higher - high value must be 2^31-2 or less. Counter is
64 bit, so you select 20 billion, 20 trillion whatever - you can pick a number
high enough that your computer (if it will run this long without interruption)
will still be cranking long after you are dead -- even if you were born today.
It also includes a counters for the 0 through 7, so if you wanted to simulate
dice rolls (or head/tail flips) and see what the results would look like after
20 billion throws. Also counts consecutive numbers generated.
Example 1:
White(1): pi 1000
pi = 3.15600000
White(1): pi 1000000 (takes less than second)
pi = 3.13887200
White(1): pi 100000000 (maybe about a minute on my machine)
pi = 3.14120400
pi = 3.13971200
pi = 3.14033867
...< a bunch deleted - it is displying every 1,000,000 iteration>
pi = 3.14043735
pi = 3.14042699
pi = 3.14040476
pi = 3.14040476 <genenerally calculates pi to within 0.03% to
0.05% - excellent for a RNG)
Example 2:
White(1): rand 0 1 100000000
{(0 1) simulates a coin flip- after seeing this - you will never be sure about a
100 game chess match again(do "rand 0 1 100") - between two equal engines - you
may have caught in the engines in blip where one engine wins 28 games (very
rare) in a row between a match of two equal engines. You do see 6 or 7 in a row
all the time in RNG for 0 and 1}
A 100 million game chess match will give you more confidence ;>)
zero's = 49994560 -> pretty darn close after 100M RNG
one's = 50005440
two's = 0
three's = 0
four's = 0
five's = 0
six's = 0
seven and higher = 0
maximum consecutive in a row = 28 (either "zero" or "one" or perhaps both
came up 28 times in a row - that happens all the time and more with 100 million
numbers generated for just with a range of two digits)
Total Random Numbers Generated (RNG) = 100000000
Raw RNG per second: 7199424
There are also some cosmetic changes – for windows users – I change the logging
sequence. Instead of “log.001” or “game.001”, you will now see 001.log or
001.game. That makes it easier to associate the log files with your favorite
text editor in windows.
AMD and P4 versions are attached – select the one that works best on your
machine.
On sadder note, I am no longer attempting to support the Chessbase GUI’s. The
current implementation of the UCI protocol using wb2uci.exe is faulty and
reduces Crafty strength. This current setup sends a “new” message with every
move – this is totally unacceptable – creates a lot of issues with modified
crafty – especially when using the new “jekyll” personality. I recommend using
Crafty with Winboard or Arena. I use under Arena with the wb2uci.exe converter
without any problems. Ihave not tested it under Winboard, but I see no reason
why it would not work.
===============================================================
===============================================================
19.11 SE Changes
There are two new personalities - "Karpov" and "Kasparov" - over 40
personalities are now available. Type "krafty" at the command prompt to see the
personalities available.
There is a new command "infox" - if you put in the command in your crafty.rc
file you will be able to confirm the right personality is being set by the
"krafty" command. It also provides specific evaluation settings used by the
current personality.
I also modified the "new" command so it also shows you what personality is
currently active.
As before, "krafty standard" will bring you back to "original" crafty
This version works best for Intel 4 processors. If you have an AMD machine or
just wish to get the PGO version that works best for AMD or P3 processors - send
me an email with words "PGO/Crafty" in the subject heading.
On average, the PGO version will run 10 to 23% faster with the biggest
percentage gains on PIII and PII processors. Most of the AMD processors will
gain about 10% to 11%. The PGO version will 7-12% SLOWER on Intel P4 machines,
Occasionally the PGO version will not run at all on a processor and I cannot
help that.
"Numa" is not active since that portion of the code will not compile on my
machine.
(previous changes)
February 2nd Crafty 19.10 SE 2004 CCT-6 Champion
Exact code that won CCT - 6 concluded February 1st, 2004
8 new personalities - 4 fun and 4 GM:
1500
1650
1800
2000
euwe
smyslov
spasski
steintz
All World Champions from Steintz through Fischer are now available.
Type "krafty" at the command prompt to see the full list
Other personality changes:
"fish" is now "wendy"
"simpleton" is now "warren"
"woodpusher" is now "michael"
This version with "standard" personality - (pure crafty) plays about even
against Ruffian 1.5 on my machine - ymmv.
"SE=on" increase pawn push extensions, uses more aggressive time usage up front
and disables null move under certain positions.
examples :
Q7/8/1p1K4/1p6/2k5/8/1P6/4q3 w - - bm Qd5
1q1k4/2Rr4/8/2Q3K1/8/8/8/8 w - - bm Kh6
New cool logo commerating Crafty's first place finish in the 2004 CCT-6.
===============================================================
January 3, 2004 Crafty 19.08 SE 2004 Update:
What's New:
Example of wb2uci.eng with comments added.
Example of crafty.rc files for using crafty as a winboard engine.
Fischer personality tweaked back to be closer Fischer personality in 19.04.SE
5%- 10% speed impovement on my machine, your mileage may vary - run the command
"bench" to test your machine.
Also, to use Crafty under Arena as a winbaord engine- your command line must
follow these rules:
Winboard rules:
1. Crafty must be in a directory path that has no spaces in the names.
"c:\program files\arena\engines\crafty" willnot work.
2. Place crafty in a folder that has a simple path like "c:\crafty".
3.. Spaces and periods for directory paths are very important. - must match
exactly.
4. All other crafty folders , including book , log and egtb (some call "tb' or
"endgame tablebase" ), must be in in a folder that has NO spaces - like "c:\tb"
, "c:\book" or "c:\log" ,
5. Create a path for your log - again "NO SPACES" even if you keep the log off
or crafty crashes
6. The commandline in the Arena GUI set up should look something like this
C:\Crafty\wcrafty.exe tbpath=C:\tb bookpath=c:\book logpath=c:\log egtb
Using the above example, make sure you created all those folders that you
pointing to in the correct path.
UCI Rules:
There is an example provided in the zipfile. The "wb2uci.exe" does NOT have to
be in a folder without spaces - but all the other folders - book, log, and egtb
must follow the Winboard rules above. Or else it simply does not work.
===============================================================
January 1, 2004
Happy New Year to all my Crafty Friends!
Attached is for your playing pleasure is "Crafty 19.08 SE 2004"
"SE" means "Special Edition"
"2004" is to celebrate the new year 2004 and it signifies that this SE version
is a significant update and the first one of 2004!
1. The code had been cleaned up and now when you select "standard" crafty
personality - you get the true "standard" crafty personality with none of my
other search, evaluation and time usage changes. By default, when you select a
krafty personality, you get other code changes that may impact search,
evaluation and time usage. Now you can select a krafty personality but keep
original search, time usage and evaluation code not impacted by selecting
krafty personality. Use the command "SE off" (caps are important) after you
select your krafty personality. If you want the Delay move function turned
off, use "dm off" after the krafty command as well. You effectively now have 64
personalities - each of the 32 personalities with SE code "on" or "off". You
can test if "standard" crafty is really working by running bench with no hash or
other line parameters - you should see exactly "Total nodes: 87089583" when
bench completes. That is the exact same result that I got before making any
changes to the source.
2. The source has also been cleaned up - I have indicated every code change
with a comment "by byrne" .
3. Added new commands "arena" and "SE". "arena" is to be used when using
crafty in the Arena GUI with wb2uci.exe. Apparently, wb2uci.exe also
translates commands that were specifically for the Chessbase Fritz GUI. One of
those commands that it translated ( when running under Arena with wb2uci.exe)
turned st x into st x000 when it was received by crafty. Obviously that is a
big difference and effectively disabled the "move per time" menu item in Arena
GUI when running Crafty 19.08 SE with wb2uci.exe. Imported under winboard, it
was fine. Crafty 19.08 SE 2004 will use the "move per time" command properly
under Arena with wb2uci.exe with the option "arena on" set. It can be set in
crafty.rc or in the wb2uci command setting GUI.
4. Other misc bug fixes. The biggest one is fixing the EGTB. Somehow , I had
broken EGTB and it's been broken for a while. I did not notice it because it
was not readily apparent, in some cases it was working.
5. To do items:
i - add more personalities
ii - rate each personality
iv. Clean up this letter - summarize all the previous letters onto one
coherent summary).
The zip file folder has the executable, the logo and the wb2uci.exe I use. Copy
these to all the engine folders you wish to add and then import the wb2uci.exe
file as you would normally. There are several web pages devoted to explaining
this process better than I can.
I am interested in hearing about all tournaments you play Crafty in and which
personality you like the best and why. Keep the e-mails coming , I read them
all - but I cannot not reply to every one - there is now over 150 people from
about 30 countries that are on my "modified crafty" mailing list!
===============================================================
(Extract of Previous E-mail Messages - provided since they may give new users of
"modified crafty" information that is still true - exact analysis may now be
different)
Also, please do not use the "adaptive" command under Fritz 8 - it seems to cause
problems, Check to see if you a crafty.rc file and delete the line that has
"adaptive xxx xxx xxx etc"
I also went back to Intel 7 for optimizations and compilations. I believe they
are faster than Intel 8.
1. Four new personalities - 2 GM's Alekhine and Fine and fun personality's -
"krazy-kamakazi" and "adroit" .
"Alekhine" and "Fine" are a continuation of "krafty gm personalities" honoring
great GM's that have played the game.
"krazy-kamakazi" will attack for no reason at all - children/beginners should be
able to beat it.
"adroit" is a very cunning player - might play around 2000 to 2200 - but is
beatable. Has great vision, but sometime mis-evaluates the pieces/position -
thus missteps. Will play very aggressive and try to go for mating attacks - but
sometimes, the mate and the win will not be there and then you will be in the
driver's seat - but don't make a mistake!
3. There was an error in the personality code in version 19.7 SE only - new
piece values were not being passed to the crafty engine when selecting a
personality. This is now corrected
==============================================================================================
New:
1. 19.07 Crafty Code by Bob Hyatt compiled with /DDETECTDRAW option - IMO ,
this the fastest solving Crafty ever on the WAC 300 - all 300 positions in 10
seconds on
my slow dual 1.7 Ghz
2. Two new personalities - Tal and Botvinnik. With the addition of these 2
personalities, there are now 28 different personalities, including the default
Crafty "standard".
3. Now you when you select a personality, you will receive feedback that the
personality is selected. Also, typing "krafty" at the command line will also
provide which personality you are engaged with.
4. Modification of personality settings to vary the usage of time by
personality. For example, the "Fischer" personality will move faster than the
slower, deep thinking "Botvinnik'.
5. All of the previous SE enhancements, including the "delay move" feature that
is used when you are playing a "dumb down personality" it will not move
instantaneously, but will take the normal time as dictated by the level you have
selected.
6. "standard" crafty is usually the strongest and I see no reason why this
would be different here based on the WAC300 test results - your mileage may
vary.
Here are some test results of WAC 300 with different personalities at 10
seconds per move, Crafty 19.7 SE, dual 1.7 Ghz, mt=2, win2k:
Personality Correct Total Nodes Searched
---------------------------------------------------------------
1. standard 300/300 93.9M
2. gm 300/300 96.4M
3. philidor 299/300 93.6M
4. nimzovitch 299/300 98.7M
5. capabalanca 299/300 101.4M
6. byrne 299/300 102.3M
7. fischer 299/300 103.5M
8. stein 299/300 106.6M
9. tal 298/300 108.1M
10. petrosian 297/300 117.3M
11. botvinik 297/300 125.3M
12. expert 252/300 23.4M
13. player 196/300 4.7M
15. fish 30/300 .2M
===========================================================
Enclosed is another update with new "Fischer" personality. Fischer played to
virtual dead heat against Ruffian 1.0.5 in 5 minute chess on my machine. All
the personalities have the enhance pawn extensions to discover these moves
quickly - I have not tested each personality on these problems. Other
"personalities" may even be faster. The "Fischer" personality did have the best
score against Ruffian 1.0.5 on my machine - your mileage may differ.
The first two problems arose in this game . Most public sources have the
original games core wrong - even CI #3 - see my notes below after 68. Kh2.
68.Kh2 is the correct move played in the game. Move 68. Kh1 was not played in
the game which is the move indicated in all databases that I have. GM Andy
Soltis noted this in his column in the current issue of Chess Life (Sept 03).
[Event "New York 3/466"]
[Site "?"]
[Date "1967.??.??"]
[Round "?"]
[White "Bisguier, A."]
[Black "Fischer, R."]
[Result "0-1"]
[ECO "B50"]
[Annotator "Milic,B"]
[PlyCount "148"]
[EventDate "1967.??.??"]
1. e4 c5 2. Nf3 d6 3. c3 Nf6 4. Bd3 Nc6 5. Bc2 Bg4 6. d3 g6 7. Nbd2 Bg7 8. h3
Bd7 9. O-O O-O 10. Nh2 b5 11. f4 b4 12. Nc4 d5 13. Ne5 bxc3 14. bxc3 dxe4 15.
dxe4 Nxe5 16. fxe5 Ne8 17. Nf3 Nc7 18. Rf2 Bb5 19. Bg5 Qxd1+ 20. Rxd1 Rfe8 21.
Bb3 c4 22. Bc2 Ne6 23. Be3 Reb8 24. Rb1 a6 25. Rff1 Be8 26. Kf2 Nd8 27. Rxb8
Rxb8 28. Rb1 Rb5 29. Rxb5 axb5 30. Ke2 h6 31. Kd2 g5 32. h4 g4 33. Nd4 e6 34.
Bf4 h5 35. Bg5 Nb7 36. Bf6 Bh6+ 37. Bg5 Bxg5+ 38. hxg5 Kg7 39. Ke3 Kg6 40. Kf4
Nc5 41. g3 Bd7 42. a3 Be8 43. Bb1 Na4 44. Ne2 Nb2 45. Nd4 Nd1 46. Ne2 Nf2 47.
Ke3 Nh3 48. Nf4+ Kxg5 49. Ng2 f6 50. exf6 Kxf6 51. Nh4 e5 52. Bc2 Bd7 53. Bb1
Ng5 54. Bc2 Nf7 55. Bb1 Nh8 56. Bc2 Ng6 57. Nxg6 Kxg6 58. Kf2 Kg5 59. Kg2 h4 60.
Kh2 h3 61. Kg1 Kf6 62. Kh2 Ke7 63. Kg1 Kd6 64. Kf2 Kc5 65. Kg1 Kb6 66. Kh1 Ka5
67. Kg1 Bc6 68. Kh2
{ most sources have the game score as 68.Kh1 , which loses immediately to Bxe4.
Fischer did not miss this move the first time around. 68....Bb7! creates
zugzwang and wins against any black response. This was noted by GM Soltis in
this month's [Sept 03] Chess Life} 68... Bb7 69. Kg1 Bxe4 70. Bxe4 Ka4 71.
Bf5 Kb3 72. Bxg4 e4 73. Bxh3 Kxc3 74. g4 Kd2 0-1
" Fischer"solves two moves made by Bobby Fischer relatively quickly.
Note : 19.7 SE now solves this problem in 5 seconds on my machine. It was 28
seconds in the previous version.
1st Problem
Bisguier,A - Fischer,R 1967
Dual 1.7 Ghz P4 Xeon SMP=2
White(1):[d]8/1b6/8/kp2p3/2p1P1p1/P1P3Pp/2B5/6K1 b - - 0 1 bm Bxe4!
2nd Problem
Bisguier,A - Fischer,R 1967
White(2): [d]8/8/2b5/kp2p3/2p1P1p1/P1P3Pp/2B4K/8 b - - 0 1 ; bm Bb7!
(Note Crafty 19.7 sees it is winning in 16 seconds on my machine and plays Bb7
instantaneously (Ba8 , also wins, Bd7 draws!).
The "fischer" personality also improved upon the solution time for this problem
mentioned in earlier version.
(Crafty 19.7 solves this position in 18 seconds on my machine)
[d]8/kp6/P5p1/2p1p3/2PpP3/3P3Q/4q3/6K1 b - - 0 1 ;bm Qe3+
===========================================================
Attached is the latest modified Crafty 19.04 Special Edition (SE #2) Package.
The package includes the latest executable of modified Crafty 19.04 SP (Special)
and all the Fritz 8 files and folders to use the different Crafty personalities.
You may also replace Fritz 8 with any Chessbase engine that has the Fritz 7 or
8 GUI - Shredder 6/7, Junior 8 (not 7) and Hiarcs 8 and Tiger 15 (Chessbase) all
work. These files should also work in Arena and Chesspartner - by right now I
use mostly Fritz 8 GUI. The SE folder even lets you set your own settings. If
you come up with a good settings let me know and I may incorporate it in the
next release.
There are now 3 methods to "dummy down" Crafty :
sd=xx --- very easy to use - fairly big jumps between levels. Endgame play
suffers as that requires depth. Usually almost instantaneous responses up until
ply 7 or 8 depending on the position on a high end machine. Limited number of
levels.
Select a "fun" krafty personality - based on search depth above , plus
non-standard krafty settings. Uses all the clock, simulating a more human like
response in time usage.
Select any personality - strong/gm/fun and set the "intensity" command (see
below). Based on 10,000 units, an intensity command will of 5,000 will use only
half the clock time for thinking - while using the balance of the clock time
with no further searching before making it's move. Two advantages over "search
depth" - literally 10,000 different levels - incrementing in jumps of 50% will
be like stepping up a half a class in strength. Automatically adapts to any
time control you select. This is also better for endgames while reducing
strength as the search will not artificially stop at a very low search depth, as
it is based on time usage and not search depth
New:
Level : "fish"
Fish plays a 1 ply search - which in some case is still too strong for
beginners. So in this case, the piece values are all the value within 1 point
(pawn) of each other, but they are still in the correct order - that is queen
is still rate the highest . This setting is for children or "brand new" adult
chess players.
Level GM - "Philidor" In honor of the legendary French player.
Command "intensity" Accepts value of 1 to 10,000 with 10,000 being full
strength. I estimate in game/10 , the value of 50 is around 1500/1600 on my
machine. Value of 1 is probably near 1200 -1300. Use the fish or pawngrabber
levels for weaker than 1200. If you select "25" Crafty will just 25/10,0000 of
it's allocated time (or 1/400). It's incorporated with the previous developed
"dm" or Delay move function so even though it's weaker power - it will still use
ALL of it's allocated time - ( if you are like me and
do not enjoy instantaneous responses from a "dumbed down program" and you have
high-end machine - you will enjoy this option). It's compatible with all the
other engine options as well.
Command "beta" - to set the root alpha.beta window size - anywhere from -10000
to 10000. -10,000 seems to offer slight improvement. Crafty self adjusts the
window size almost immediately anyway - I am not sure why this works - is it
random ?
(Update - defaults are set back to 40)
Command "lazy" parameters 0-5- set like an extension "ext lazy 1" - it multplies
the default lazy exit parameter by its value. I had good success using "2" as
a setting. Under the Fritz GUI, all extensions the wb2uci.eng file are set using
"uci from 0-60 with 60 being full ply extension., 30 being half ply etc.
Example:
u check 60 = 1 ply
u recapture etc.
then for lazy:
u lazy 300 equals 5x default value for lazy exit.
=========================================================
Crafty SE has several commands not in regular Crafty:
"krafty " e.g. "krafty morphy" this is how set the personality from the command
line. It is much easier to set everything from the Fritz 8 GUI. (Update: Arena
works fine too!)
"dm" (delay move) - Ideally used with a search depth set to -- say to 3.
Normally
Crafty will move instantly with "sd=3". With delay move on, Crafty will still
search only 3 plies - but it will use all the time as it would normally. If you
are like me and get annoyed by instantaneous response while trying to play
Crafty at a weaker level, you will like this option. You can use it with ANY
time control - it will adjust automatically.
"value" command to set different values for the pieces.
A new extension setting is "start_depth", it works like other ext commands "ext
start .5" sets the start deoth extension @ 1/2 ply -- which is the default from
the console of crfaty.rc file. In F8, you may add a spin option to change
start_depth from 0 to 60 , with 30 being the equivalent of 1/2 ply or the
default. In F8, the command line is:
Start extension=u start|spin|30|0|60.
....Also included are all the Fritz 8 "eng" folders and files. You will need
to modify to suit your directory setup. I included specific personality
settings as engines as well the SE folder. The SE engine lets you select a
personality from the GUI. In addition, I have modified the eng files to allow
the user to select their own null move settings.
No crafty.rc file is required - you can modify the eng file to suit your own
taste. It will; however, accept a crafty.rc file if that is your preference.
<end of notes>
==============================================================
Copyright Notice
==============================================================
Crafty and Crafty SE, copyright 1996-2004 by Robert M. Hyatt, Ph.D., Associate
Professor of Computer and Information Sciences, University of Alabama at
Birmingham.
All rights reserved. No part of this program may be reproduced in any
form or by any means, for other than your personal use, without the
express written permission of the author. This program may not be used in
whole, nor in part, to enter any computer chess competition without
written permission from the author. Such permission will include the
requirement that the program be entered under the name "Crafty" so that
the program's ancestry will be known.
Copies of the source must contain the original copyright notice intact.
Any changes made to this software must also be made public to comply with
the original intent of this software distribution project. These
restrictions apply whether the distribution is being done for free or as
part or all of a commercial product. The author retains sole ownership
and copyright on this program except for 'personal use' explained below.
Personal use includes any use you make of the program yourself, either by
playing games with it yourself, or allowing others to play it on your
machine, and requires that if others use the program, it must be clearly
identified as "Crafty" to anyone playing it (on a chess server as one
example). Personal use does not allow anyone to enter this into a chess
tournament where other program authors are invited to participate. IE you
can do your own local tournament, with Crafty + other programs, since this
is for your personal enjoyment. But you may not enter Crafty into an
event where it will be in competition with other programs/programmers
without permission as stated previously.
======================================================
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.