On intelligent chess

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
Look
Posts: 366
Joined: Thu Jun 05, 2014 2:14 pm
Location: Iran
Full name: Mehdi Amini

On intelligent chess

Post by Look »

===============================================
Chess and Coding:
{
Eliminate the brute force; Maybe that is the goal of A.I.
The core of A.I. is constraint satisfaction.

Put the pieces where they can be placed reasonably;(Capture ordering).
Minimize defensive contact, Maximise offensive contact;(Contactness).
then:
Reduce search graph : Eliminate the contradiction.
Beautiness : Beauty is Art and Art is Beauty.
}
======================================================
Static Analysis and Dynamic Analysis constitute chess consideration in A.I.

Static Analysis is basically boundness and contactness.

Dynamic Analysis is basically intelligent search.

Maybe Dynamic Analysis instance:
Compute on the fly; Three type of pieces: Good, Neutral, Bad.

Consider maneuver of each piece of opponent several times; Do it for yourself; Combine them into consecutive moves.
Maybe: From Positional to Tactical.

Maybe Positional: Select worst placed piece and put it on it's best square.
Maybe Tactical: Man (Piece or Pawn) is taken, like favorable exchange.

=====================================================
Part of the memory would be allocated for full bitboard
and part for hashed bitboard.

Use double hash for accuracy.
=====================================================
Basic Capture/Threat Ordering:

0.(King)
1.Queen
2.Rook
3.Bishop - Knight
4.Pawn

----------

Contactness (general form of Boundness):
Maybe tactical game.

---------

What is Forward Thinking, here?

=======================================
UnitTest++ library(project) for MSVC
Try Boost test.
CUnit a test library for C programming language.
Compile test library into ".lib" file and connect and use it in MSVC.

First compile code with low level warning, then increase warning level, solve warnings;
Then gradually increase optimasation levels.

Use "const" , "assert".
Pointers either point to NULL or some address.

======================================
Coding paradigms:
Modular - Test driven - Automated code generation.

======================================
Alpha Beta is brute force.
======================================
Compare Greatest strength and Biggest weakness.

======================================

Use effective squares for men placement.
Maybe positional game.

=======================================

Testing engine:
Assurance tests: Some tests that should always be passed.
Quality tests: Some of the tests can be passed.

1-2 Hour testing a bunch of positions and do some operations on it, for cooking ideas. (Some times pass some times fail.)

Engine-engine match of self-play for 1-2 days (like 1min+1sec) to understand whether change was successful.

=======================================

Use standard chess symbols for (built in) position evaluation.
+- +/- += = == -= -/+ -+ unclear
and so on.
Consider all chess symbols.

=======================================

Use Backup software.

=======================================
Farewell.
User avatar
Guenther
Posts: 4611
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: On intelligent chess

Post by Guenther »

Look wrote:===============================================

...

=======================================
I cannot help but all of this just reminds me of this:
https://en.wikipedia.org/wiki/Platitude