Tags

, , , , , , , , ,

  • On the road to checkmate, it can be said, that capturing your opponent’s pieces is good, and avoiding the captures of your own pieces is good. Capturing a piece removes all its moves from the board permanently.
  • Queening pawns is good, because a Queen gives you a lot more moves than a pawn gives.
  • Developing pieces is good, because it gives your pieces more moves, and gives them shorter turn numbers to captures.
  • Space advantage is a good, because you have more moves available than the opponent has.
  • An inactive piece is less valuable, and an active piece is more valuable.

It can be said, that the road to checkmate increases your own moves (development and queening) and reduces your opponent’s moves (restraining and captures), until the opponent has no moves to avoid your checkmating moves.

  • As checkmate ends the game, and as chess is a game of reducing your opponent’s moves until checkmate, it can be said that the checkmate’s value is: reducing all the mated player’s moves to 0.
  • Hence the goal in chess is to maximize the ratio of “own moves / (own moves + opponent’s moves)” to 1, and avoid the ratio 0. The game starts from a ratio of 0.5, plus minus the effects of calculation and actual play.
  • The best moves are those, whose futures nett the highest number of moves, the opponent’s losses netting plus.

Differentiating between developing moves, and moves that retain or capture pieces, becomes more numerical, and easier.

Pruning moves that cannot reach the same netts as other moves, becomes more numerical, and easier.

☆☆☆

To differentiate between checkmate and stalemate, the pieces could be given a minimal starting value, e.g. + 1, e.g. from their own square. The attacking of this square removes this value to 0, giving a nett of + 1 to the attacker. Now a stalemate includes at least + 1 of value, hence being less valuable than a checkmate with said value as 0. It can also be said that Stalemate (draw) sets your move total ratio to 0.5.

☆☆☆

Here’s an example of how the pieces’ values could be calculated from their numbers of moves:

  • Piece’s own square = + 1
  • Available move = + 1 per square
  • Piece’s teammate = + 2 / 3 per square
  • Piece’s opponent = + 2 per square
  • Xray = + 1 / (turns to open) = + 1 / 3 per square or less
  • Square dominated by opponent = + 1 / 3 per square or less

☆☆☆

The pieces’ moves’ values get calculated as follows:

☆☆☆

  • Moving itself = + new square’s values – current square’s values
  • Capturing = – piece’s value = nett + piece’s value
  • Checkmate = – all their pieces’ values = nett + all their pieces values = set their total moves number to 0
  • Xray opened into available move = + 1 / 3 —> 1 = + 2 / 3 times square
  • Available move closed into Xray = 1 —> 1 / 3 = – 2 / 3 times square
  • Available move into a dominated square = 1 —> 1 / 3 = – 2 / 3 times square
  • Dominated square into an available move = 1 / 3 —> 1 = + 2 / 3 times square

☆☆☆

Note how the traditional fixed piece values (1, 3, 3, 5, 9, 40) correspond nearly to the pieces’ move numbers on an empty board:

Pawns have 3 moves on average (2 attacks-only + 1 move-only),
Knights near the center have 8 moves,
Bishops have 9 moves on average,
Rooks always have 14 moves,
Queens have 23 moves on average, 27 max.

These divided by the Pawns’ move average of 3, yield:

Pawns = 3 / 3 = 1
Knights = 8 / 3 = 2.67
Bishops = 9 / 3 = 3
Rooks = 14 / 3 = 4.67
Queens = 27 / 3 = 9

Hence the traditional fixed values represent the pieces’ move number maximums on an empty board.
Hence the traditional fixed values are inherently optimistic in attack, and pessimistic in defence.

These new flexible values represent the pieces’ current move numbers in the current position, weighted conservatively to set attacks worth 2 empty squares, etc. for other square interactions, and give a numerical value for e.g. development moves vs. capturing moves. Added with calculation trained on these traditional values, this writer has seen an improvement in his play.

☆☆☆☆☆☆

Further thoughts:

Wishing for a program with no fixed piece values, which calculates piece values based on their mobility alone. Its algorithm would of course be slower, but it would be interesting to see how it played chess.

The above values could be further refined scientifically:

An initial program would only identify and count different types of squares, without value weight differences. Then, using a game database scored by the strongest available engine (e.g. Stockfish 16, in 2023), use the database positions for counting the numbers of the different types of squares, and solve using e.g. SciPy curve_fit, how much the parameters should have weight, to best approximate Stockfish’s scores. Then scale up the parameters so simple legal moves (e.g. empty squares) have a value of 1, and build a chess-playing engine using those parameters in its search.

An example of the SciPy curve_fit equation:

a * OwnSquares + b * EmptySquares + c * OwnPieces + d * OpponentPieces + e * XraySquares + f * OpponentDominatedSquares – a * OpponentOwnSquares – b * OpponentEmptySquares – c * OpponentOwnPieces – d * OpponentOpponentPieces – e * OpponentXrays – f * OpponentOpponentDominatedSquares +- theMove = Stockfish 16 given score


☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆


SUOMENNOS // FINNISH TRANSLATION:

Valintarikas Läheisyys: Laske Mahdolliset Siirrot Arvioinniksi: Tiivistys Shakkiperiaatteista


Esitän shakkiin siirtojen arviointiin menetelmän, numeroiduilla nappuloiden liikkuvuuksilla, painotettu eri tavoin eri ruutuvuorovaikutuksille:

  • Matkalla shakkimattiin, voidaan sanoa, että vastuksen nappuloiden syöminen on hyvä, ja omien nappuloiden syömisen välttäminen on hyvä. Nappulan syönti poistaa kaikki sen siirrot laudalta.
  • Sotilaiden korotus on hyvä, koska Kuningatar antaa paljon enemmän siirtoja kuin sotilas.
  • Nappuloiden kehittäminen on hyvä, koska se antaa nappuloille enemmän siirtoja, ja antaa niille lyhempiä vuoromääriä syömisiin.
  • Tilaetu on hyvä, koska sinulla on enemmän siirtoja kuin vastuksella on.
  • Toimeton nappula on vähemmän arvokas, ja aktiivinen nappula on enemmän arvokas.

☆☆☆

Voidaan sanoa, että tie shakkimattiin lisää omia siirtojasi (kehitys ja korottaminen) ja vähentää vastustajasi siirtoja (estäminen ja syömiset) – – kunnes vastustajalla ei enää ole siirtoja jäljellä välttääkseen shakkimattisiirtojasi.

  • Koska shakissa vähennät vastuksesi siirtoja kunnes shakkimattaat hänet, ja shakkimatti lopettaa kaikki siirrot, voidaan sanoa että shakkimatin arvo on: vähentää kaikki matatun pelaajan siirrot 0:aan.
  • Siten shakissa tavoite on maksimoida suhdeluku “omat siirrot / (omat ja vastuksen siirrot)” numeroon 1, ja välttää lukua 0. Peli alkaa suhdeluvusta 0.5 ± vaikutukset ennakoinnista ja varsinaisesta pelaamisesta.

Erottaakseen shakkimatin pattitilanteesta, nappuloille voisi antaa minimaalisen aloitusarvon, esim. + 1, esim. niiden omasta ruudusta. Tuohon ruutuun hyökkääminen poistaa tuon arvon 0:aan, antaen nettona + 1 arvoa hyökkääjälle. Sitten pattitilanne sisältää ainakin + 1 arvoa kuninkaan omasta ruudusta, ollen vähemmän arvokas kuin shakkimatti kyseisellä arvolla 0:ssa. Voidaan myös sanoa, että pattitilanne (tasapeli) asettaa sinun kokonaissiirtosuhdelukusi 0.5:een.

  • Parhaat siirrot ovat niitä, joiden tulevaisuudet nettoavat suurimman luvun siirtoja, vastuksen menetysten netotessa plussaa.

Erotteleminen “kehittävien siirtojen” ja “nappuloita syövien siirtojen” välillä tulee numerollisemmaksi, ja helpommaksi.

Karsia siirtoja jotka eivät voi netota samaa kuin muut siirrot, tulee numerollisemmaksi, ja helpommaksi.

☆☆☆

Seuraavaksi esimerkki kuinka nappuloiden arvoja voi laskea, niiden määristä siirtoja:

  • Nappulan oma ruutu = + 1 arvoa
  • Avoin siirto = + 1 arvoa per ruutu
  • Nappulan joukkuetoveri = + 2 / 3 arvoa per ruutu
  • Nappulan vastustaja = + 2 arvoa per ruutu
  • Röntgen = + 1 / 3 per ruutu tai vähemmän = + 1 / (vuoroja avata röntgen)
  • Ruutu jota vastus dominoi = + 1 / 3 per ruutu tai vähemmän

☆☆☆

Nappuloiden Siirtojen arvot lasketaan seuraavasti:

☆☆☆

  • Siirtyminen itsessään = + uuden ruudun arvot – nykyisen ruudun arvot.
  • Syöminen = – nappulan arvo = nettoa + nappulan arvo.
  • Shakkimatti = – kaikkien nappuloiden arvot matatulta = nettoa + kaikkien nappuloiden arvot matatulta = aseta hänen siirtojensa kokonaismäärä 0:aan.
  • Röntgen avoimeksi ruuduksi = + 1 / 3 —> 1 = + 2 / 3 kertaa ruutu.
  • Avoin ruutu Röntgeniksi = 1 —> 1 / 3 = – 2 / 3 kertaa ruutu.
  • Dominoitu ruutu avoimeksi ruuduksi = 1 / 3 —> 1 = + 2 / 3 kertaa ruutu.
  • Avoin ruutu dominoiduksi = 1 —> 1 / 3 = – 2 / 3 kertaa ruutu.

☆☆☆

Huomioi kuinka nappuloiden perinteiset, pysyvät arvot (1, 3, 3, 5, 9), vastaavat läheisesti nappuloiden siirtomääriä tyhjällä laudalla:

Sotilailla on 3 siirtoa keskimäärin (2 hyökkäystä, 1 liikkuminen)

Ratsuilla lähellä keskustaa on 8 siirtoa,

Läheteillä on keskimäärin 9 siirtoa,

Torneilla on aina 14 siirtoa,

Kuningattarilla on enintään 27 siirtoa.

Nämä jaettuina sotilaan siirtomäärällä antavat:

Sotilas = 3 / 3 = 1

Ratsu = 8 / 3 = 2.67

Lähetti = 9 / 3 = 3

Torni = 14 / 3 = 4.67

Kuningatar = 27 / 3 = 9

Siten, perinteiset pysyvät arvot kuvastavat nappuloiden maksimi-siirtomääriä tyhjällä laudalla.

Siten pysyvät arvot ovat luonnostaan optimistisia hyökkäyksessä (“Wau, tuosta saa noin paljon!”), ja pessimistisiä puolustuksessa (“Voi ei, tuosta menettää noin paljon!”).

Nämä, muuttuvat arvot, kuvastavat paremmin nappuloiden silloisia arvoja silloisissa asemissaan, ja antavat numerollisia arvoja kysymyksille kuten “kehitystä vai syömistä ?”. Perinteiseen siirtojen ennakointiin lisättynä, nämä liikkuvuusnumeroarvot ovat kehittäneet tämän kirjoittajan pelaamista.