martes, 15 de abril de 2008

Ajedrez en inglés. Computadoras

Common Computer Chess Terms
[ **Traducido al español. Al final un glosario de términos habituales]
167

This glossary of computer chess terms is not intended to be exhaustive, but should cover most of the common terms that may be useful for non-programmers.

*Alpha-Beta

A search pruning technique that dramatically speeds up a minimax chess search by pruning branches that the minimax algorithm would never select. The final move selected, and the final evaluation reported, are identical to that minimax would choose, but it is achieved hundreds of times faster. This is accomplished by abandoning lines that are either too good or too bad to be pursued. Humans do a similar kind of pruning when analysing chess positions. If you see that a certain move will let your opponent gain an advantage with one of his counter-moves, you abandon the line, because you won't want to offer your opponent the opportunity of making the great counter-move. Similarly, if you find a line (beyond the first ply) that will allow you to do much better than other lines, and your opponent can force you into one of the inferior lines, you abandon the line assuming that your opponent won't let you play the line most favourable to you. These criteria of 'too good' and 'too bad' are the 'alpha' and 'beta' in the name 'Alpha-Beta'. See also 'Minimax' and 'Fail low/high', below.

** La Alfa-Beta

Una técnica de poda de búsqueda que dramáticamente acelera el ajedrez-minimax recortando ramas que el algoritmo del minimax nunca seleccionaría. El movimiento final seleccionado, y el informe de la última evaluación, es idéntico al que minimax escogería, pero logrado centenares de tiempos más rápido. Esto es consumado abandonando líneas que, o son demasiado buenas o demasiado malas, para ser seguidas. Los humanos hacen un tipo similar de recorte al analizar las posiciones. Si usted ve que cierto movimiento permitirá a su antagonista una ventaja en el contraataque, abandona esa línea, porque no quiere ofrecerle la oportunidad de hacerlo. De la misma forma, si encuentra una línea (más allá del primer movimiento) que le permita jugar mucho mejor que otras líneas, pero su antagonista puede forzarlo a otra línea inferior, usted la abandona ya que asume que su antagonista no le permitirá jugar ésta más favorable. Los criterios de 'demasiado bueno' y 'demasiado malo' son 'el alfa' y 'la beta' del nombre 'Alfa-beta'. también Vea 'Minimax' y 'el low/high de la Falta', debajo de'.


*Branching factor

This term actually has two distinct but related meanings: a measure both of how many moves there are in a given position and of how efficient a program is at pruning unpromising lines. The starting position in chess has a branching factor of 20 (20 possible first moves for White, 20 possible replies for Black) and a typical middlegame position has a branching factor of about 40 (40 legal moves). Various pruning techniques enable most modem programs to search with a
branching factor of about 3. This means that even though there may be about 40 legal moves at every ply, enough of them are pruned away as unlikely to occur that each ply of deeper search will take approximately three times more time than the previous ply's search. Keeping the branching factor low is critical for achieving deep searches. With a branching factor of 3, a 12-ply search would examine a mere 531,441 positions (not counting extensions) and take about one second. With a branching factor of 40, a 12-ply search would require examining over 17,000,000 trillion positions and take about 500,000 years!

** El factor bifurcación (o de ramificarse)

Este término tiene dos significados distintos pero relacionados: una medida, para ambos jugadores, de cuántos movimientos hay en una posición dada; y cómo es de eficaz un programa al podar líneas poco prometedoras. La posición de arranque en el ajedrez tiene un factor de la bifurcación de 20 (20 posibles primeras jugadas para el Blanco (ply) y 20 posibles contestaciones del Negro (ply)) y una posición típica, de medio juego, tiene un factor de la bifurcación de aproximadamente 40 (40 jugadas legales). Varias técnicas de recorte habilitan a los programas para investigar con un factor de bifurcación de aproximadamente 3. Esto significa que aunque puede haber aproximadamente 40 movimientos legales en cada ply, bastantes de ellos son prontamente recortados, ya que es improbable que ocurran y (si no se hace así) cada ply de búsqueda más profunda tomaría tres veces más tiempo. Mantener el factor de bifurcación bajo resulta crítico para obtener búsquedas profundas. Con un factor de bifurcación de 3, una búsqueda del 12-ply examinaría sólo unas 531.441 posiciones (no contando las extensiones) y toma aproximadamente un segundo. ¡Con un factor de la bifurcación de 40, una búsqueda del 12-ply requeriría examinar más de 17.000.000 billones de posiciones y tomaría aproximadamente 500.000 años!


*Brute force

A type of search which looks at all possible moves, without aggressively pruning unpromising lines (brute-force programs may still use alpha-beta pruning, as this does not change anything compared to a program that does not use alpha-beta, other than the search speed). Some early programs were called brute-force programs because they did not do any pruning. Many modem programs will do a brute-force search at low depths and then start pruning only when doing searches beyond their brute-force depth.

**La fuerza bruta

Un tipo de búsqueda que estudia todos los movimientos posibles, sin recortar, agresivamente, las líneas poco prometedores. (los programas de fuerza-bruta todavía pueden usar el recorte alfa-beta, esto no cambia más que la velocidad de búsqueda de un programa comparado con el que no usa la alfa-beta). Algunos programas antiguos fueron llamados programas de fuerza-bruta porque ellos no hacían ninguna poda. Muchas modalidades de programas hacen una búsqueda de fuerza-bruta en las bajas profundidades y luego podan la salida sólo al hacer las búsquedas más allá de su profundidad de fuerza-bruta.



*Centipawn

Most programs evaluate positions in terms of pawn units, where one pawn is considered to have a value of 1.00. Some programs evaluate using centipawns, or one hundredth of a pawn, and an evaluation of 100 would equal one pawn.

**Centésimas de peón

Muchos programas evalúan las posiciones por lo que se refiere a unidades del peón dónde se considera que un peón tiene un valor de 1.00. Algunos programas evalúan usando el centipawns, o una centésima de un peón, y una evaluación de 100 igualaría un peón.


*Contempt (factor)

A factor that is used for the purpose of actively avoiding (or actively seeking) draws by repetition. For example, a high contempt factor will cause a program to try to avoid a draw by repetition, even in positions where it considers its position to be slightly worse.

**El desprecio (factor)

Un factor que se usa con el propósito de evitar activamente (o buscando activamente) tablas por repetición. Por ejemplo, un factor de desprecio alto originará un programa que intenta evitar tablas por repetición; incluso en posiciones dónde considera que su posición es ligeramente peor.


*Depth (search depth)

How far ahead a program looks in a particular position. For example, normally a depth of 12 would mean the program has searched 12 plies (6 moves) ahead. However, every program measures depth slightly differently, so direct comparisons of search depth between different programs cannot be meaningfully made.

**La profundidad (la profundidad de la búsqueda)

Cómo de lejos, hacia adelante, un programa calcula desde una posición particular. Por ejemplo, normalmente una profundidad de 12 significaría que el programa ha investigado 12 plys (6 movimientos) delante. Sin embargo, cada programa mide la profundidad ligeramente diferentemente, no pueden hacerse exactamente comparaciones directas de profundidad de búsqueda entre programas diferentes.

*Database

Any computer-stored collection of (chess) information. It could be a collection of chess games (a games database), opening lines (an opening database, a.k.a. opening book), endgame perfect play information (an endgame database, a.k.a. tablebase), etc.

**La base de datos

Cualquier colección de almacenamiento informático de datos de ajedrez. Puede ser una colección de juegos de ajedrez (una base de datos de los juegos), de aperturas (una base de datos de la apertura, a.k.a. opening book), finales de juego perfectos (una base de datos de finales , a.k.a. el tablebase), etc.


*Engine

That portion of a chess program which contains the chess knowledge and performs the chess calculations. The 'brains'of the program.


*EPD

'Extended Position Description' is a standard for describing chess positions using the ASCII character set, somewhat similar to Forsyth notation. It allows one to 'cut' and 1 paste' chess positions from one chess program to another, or alternatively to 'cut' and 'paste' positions between the web or elsewhere and a chess program. A similar standard for chess games (as opposed to positions) is PGN (see below). EPD is an extension of a similar/older standard for describing chess positions, FEN (see below). Unlike FEN, EPD is designed to be expandable by the addition of new operations that could provide new functionality as new needs arise, but in most cases a position described by EPD or FEN produces identical output, and the two terms can generally be used interchangeably.


*Evaluation (function)

That portion of a chess program which statically (without a search) evaluates features of a position, such as material balance, king safety, pawn-structure, mobility, etc. Evaluations are most often expressed to the human user in pawn units, or sometimes in centipawn units.


*Fail low/high

Modem chess programs make the classical alpha-beta run faster still, by squeezing the window between 'too good' and 'too bad'. This causes more pruning, making the search run much faster than classical alpha-beta. Sometimes this can result in no move being found that fits within the alpha and beta bounds. When this happens, the search produces neither a PV, nor an evaluation. The engine displays no information at all, other than that it 'failed low' or 'failed high' when searching a particular candidate move and the bounds of the window that failed (the evaluation is at least this bad or good). In this case the engine will pick new values for alpha or beta and start searching again. Some programs revert temporarily to classical alpha-beta in this case.
The significance for the analyst is that 'fail lows' and 'fail highs'typically only occur when a program finds something of tactical interest, which it did not see at shallower plies of search. Slight changes in the positional evaluation only very rarely cause fail lows/highs. In wild and unclear positions fail low or high may happen a lot. When fail lows occur, the program needs to spend extra time resolving its confusion. This is very similar to a chess-player who suddenly realizes that the position is not as good as he previously thought, and now has to think about the position more deeply. A fail high is very similar to when a chess-player suddenly realizes that he has a very strong move and he takes extra time to validate just how good things really are. You can even get a fail low, as the program finds "I am in trouble" followed by a fail high sometime later when it sees, "no, there is a defence" perhaps then followed by another fail high I am not just doing OK; 1 am winning" followed by a fail low "oops, no, 1 am losing". Observing fail lows and highs can give the human watching all this some sense for the degree of clarity or complexity in a position. Programs will often indicate a fail high by using a colour such as green andlor an arrow pointing up or a
,+' sign. Fail lows may be indicated by a colour such as red and/or an arrow pointing down or a sign. In a complex position it is not uncommon to see a fail low only to be followed shortly thereafter by a fail high, or vice-versa. Similarly one can see multiple fail lows or fail highs in a row, indicating the position is deemed successively worse and worse when it involves fail lows, or successively better and better for multiple fail highs. See also 'Alpha-Beta', above.

**Fallo bajo/alto

Los programas de ajedrez hacen más rápidamente todavía la alfa-beta clásica, restringiendo la alternativa entre 'demasiado bueno' y 'demasiado malo'. Podan más, lo que convierte a la búsqueda en más rápida que la alfa-beta clásica. A veces esto puede producir no encontrar ningun movimiento dentro de los límites alfa-beta. Cuando sucede, la búsqueda ni produce un PV, ni una evaluación. El motor no despliega ninguna información; eso es el 'fallo por debajo' o el 'fallo por lo alto' al investigar un movimiento del candidato particular y los límites de la alternativa que falló (la evaluación es por lo menos malo o bueno). En este caso el motor escogerá los nuevos valores por alfa o beta y empezará a investigar de nuevo. Algunos programas revierten temporalmente a la alfa-beta clásica en este caso.

La importancia para el analista es que 'fallo bajo' y 'fallo alto' típicamente ocurren cuando un programa encuentra algo de interés táctico que no vió en los plies de de búsqueda superfcial. Pequeños cambios en la evaluación de la posición sólo muy raramente causan fallos lows/highs. Son las posiciones salvaje e inciertas donde pueden pasar. Cuando la falta baja ocurre, el programa necesita pasarse tiempo extra para que se resuelve su confusión. Esto es muy similar a un -jugador que de repente comprende que la posición no es tan bueno como él pensó previamente, y ahora tiene que pensar más profundamente sobre ella. Una fallo alto es muy similar a cuando un jugador comprende de repente que él tiene un movimiento muy fuerte y se toma tiempo extra para, simplemente, validar cómo son realmente las cosas de buenas. Usted puede tomar un fallo bajo, como que el programa dice "yo estoy en problemas"; quizá algún día posterior vendrá un fallo alto que indique, "Hola!, existe entonces una defensa!" seguida por otro fallo alto "No está sólo bien, está ganado", seguido por un fallo bajo: "Oh! no!, estoy perdiendo". Observando fallos bajos y altos pueden dar una mirada humana que de sentido y un grado de claridad o complejidad a una posición. Los programas indicarán a menudo una falta alta usando un color como el verde o una flecha que apunta hacia arriba, o un signo '+'. El fallo bajo puede indicarse por un color rojo y/o una flecha que apuntan hacia abajo o una señal '-'. En una posición compleja no es raro ver un fallo bajo seguido inmediatamente por uno alto; o vice-versa. De la misma manera se puede ver fallos múltiples, bajo o altos, que indican la posición juzgada consecutivamente cada vez peor o peor. También vea 'la Alfa-beta', anteriormente.


*FEN

'Forsyth-Edwards Notation' is a standard for describing chess positions using the ASCII character set. See also EPD and PGN.


*GUI

'Graphical user interface'; this is the part of a chess program which interacts with the human user by displaying the chess board, engine analysis, etc., as well as responding to user inputs such as mouse clicks. It is not uncommon for chess programmers to divide the programming task between one person or group who programs the GUI and another who programs the chess engine. There are also numerous cases where the same GUI is used by many different engines, and where the same engine can be run in more than one GUI.


*Hash table

A hash table (sometimes also called a transposition table) is a method programmers use to speed up a chess program, by storing positions and their corresponding evaluations in a 'table' and then later probing the table for these results (looking for transpositions). Probing of the hash table is much, much faster than evaluating the same position all over again, and thus hash tables speed up the search. The more potential transpositions, the more the search is sped up. For this reason, hash tables are most important in endgames, where transpositional possibilities are more common.


*Heuristic
Any of the dozens of 'rules of thumb' encoded within a chess engine and intended to make the engine stronger.


*Horizon effect
The term used to describe how certain factors beyond the program's search will be invisible to the program. In the past the horizon effect could cause strange behaviour in programs; for example, they might throw away (deshechar) piece after piece in order to postpone, but not prevent, an inevitable loss of a rook. Today's programs have advanced search techniques which generally avoid such blatant (descarados) horizon effects, but the horizon effect can even today often lead to inaccurate evaluations.


*Infinite analysis

A chess program level where the program never makes a move, but continues to analyse a position and display its thinking indefinitely, until interrupted by the human user. This mode is very useful for the analyst working with a program interactively.


*Iterative deepening (creciente, más profundo)

A technique used by chess programs where they first do a very shallow (superficial) search, then search again one ply deeper, then when that search is finished search still one ply deeper yet. They keep repeating this process until the desired search depth or time has been reached. Intuitively this method sounds wasteful (derrochador) (why not search at the depth you eventually want to reach?) but in fact it turns out to be more efficient due to technical reasons relating to the importance of move ordering and time allocation. Iterative deepening is also very useful to the analyst, since it makes intermediate results continuously available.


*Leaf node

Any of the final positions in a search tree, which are then evaluated by the program's evaluation function.


*Minimax

An algorithm for selecting the best possible move, under the assumption that the opponent will answer with their best move. The player to move tries to maximize his evaluation, per the program's evaluation function, using the assumption that the opponent will be trying to minimize it. The interaction between these two intentions generates the 'minimax' solution.


*Move

Two plies. One move each for White and Black. Sometimes it also refers to a particular move choice made, or potential move choices (in which case it is only one ply), but in such cases it is not a measure of the number of moves/plies that have/will be made.


*Move ordering

The order in which a chess program searches through all the various possible move candidates. Due to the alpha-beta pruning technique, searching the strongest move candidates before weaker ones is very important to make chess program searches efficient.


*Null move

One of the most popular and common search-pruning techniques, based on the assumption, usually but not always correct, that making a move should lead to a superior position compared to making no move at all. Near the end of a search branch, you let one side move twice in a row - the other side only gets a 'null'move. If after getting two moves in a row the side with the two moves isn't doing really well, then the first of the two moves must not have been very good, and should be pruned from the search. Null-move pruning is generally phased out in the endgame. In this phase there often exist zugzwang positions, where making a move is disadvantageous, and nullmove pruning becomes counter-productive. Null-move pruning has a controversial history, in part because in certain unusual positions involving zugzwang, if a program is still using null move, the program can make dramatically bad moves. In most positions null move leads to a huge increase in search depth, and thus strength, and most modem programs use nullmove pruning to at least some extent.


*Opening book

The database of opening lines a particular program consults to make its moves during the opening phase of the game.


*Ply

A move of either White or Black. A full move (both a white and black move) would be two plies. From the starting position, a program that searched the line 1.e4 e5 2.2Cf3 2Cc6 3.Ab5 and then stopped would have performed a five-ply search of one branch.


*PGN

'Portable game notation'is a human-readable standard for notating chess games. It allows chess-playing and database programs to share chess games using 'cut' and 'paste'. Similar standards for chess positions (as opposed to games) are EPD and FEN (see above).


*Prune (pruning)

The method of disregarding (not searching) certain lines believed to be unpromising (poco prometedoras). There are numerous different techniques various programs use to do pruning.


*PV

'Principal variation' is the line a particular engine believes represents best play by both sides in a given position, and is the line the program displays if it has been set up to display its 'thinking'. The PV in a position will typically vary from program to program, and also for the same program with deeper searches.


*Quiescence search

One portion of the search in which search extensions take place. The program has finished its main search and now continues to search until it reaches a position it deems (juzga) 'quiet', i.e. without unresolved tactics. Quiescence search is the main method programs use for avoiding the horizon effect.


*Search

The part of a chess engine that looks ahead, and decides which lines to look at and which to ignore. 'Search' also refers to what this part of a chess engine does.


*Search tree

The sum of all moves and lines examined during the search. It is called a 'tree' since lines branch from other lines, which in turn branch from others. One could graphically display the complete search like a bushy tangled (enredado) tree.


*Search explosion

Poorly implemented search extensions and certain types of positions can cause 'search explosions', where the program spends so much time examining either extensions or lines that had previously been pruned, that the program becomes bogged down (empantanado).


*Search extension

If there is a line that is interesting, promising, or volatile, the search may be extended. Checks, (re)captures, and passed-pawn pushes are examples of moves which often cause the search to be extended.


*Search horizon

The limit at which a program stops its search. Certain factors which a program does not have encoded in its evaluation function and which it also does not see from its search are said to be beyond the program's search horizon.


*SSDF

The Swedish Chess Computer Association in Swedish Svenska schackDatorFdreningen (SSDF) - is an independent organization for people interested in chess computers and chessrelated computer software. SSDF is totally free from commercial connections or interests. They are most well-known for providing unbiased (imparcial) ratings of chess programs, and gaining the top spot on the SSDF rating list is a goal of nearly every top commercial chess programmer'. The SSDF rating list website can be found at: http://wl.859.teha.corril-u85924109/ssdf/list.htrn


*Tablebase

An endgame database which contains information on how to play endgames with very few pieces perfectly. See the section 'Tablebase Endings' in Chapter 5 for more information.


*Threads

Some programs can perform multiple calculations simultaneously. This is typically important only for programs running on multi-processor computers, such as the eight-processor computer on which X3D Fritz ran when it played Kasparov in 2003. Each processor is said to be running a different thread. Some of the newest computer processors can run multiple threads within a single processor. These computers are effectively similar to a multiprocessor computer, even though the computer only contains a single processor.


*UCI
'Universal chess interface' is a standard protocol for communication between a chess engine and a chess GUI. In theory, any chess-engine author who writes the engine in a manner consistent with the UCI protocol can then use any UCI-compatible GUI to interface with the engine. There are several different GUls and engines which are compatible with the UCI protocol.


*Winboard

Another standard protocol for communication between a chess engine and a chess GUI, and the first one to become widely popular. There are numerous GUIs and chess engines that are compatible with the Winboard protocol.

---
**Terminos Habituales

Accomplish estudiar, considerar.
Ask preguntar, pedir.
barely (hardly) apenas; I can barely hear you apenas te oigo, casi no te oigo; we’d barely finished eating when he arrived apenas habíamos terminado de comer cuando llegó b (scantily): a barely furnished room una habitación con pocos muebles
Backwards de espaldas, atrás, retrocediendo.
Bear down (fam.) de mala leche.
Bear out corroborar.
Bear up soportar (con buen ánimo).
Bear with tener paciencia.
Bear oso, bajista.
Beside al lado, además.
Blame reproche, culpa.
Blinding deslumbrante.
Boiled dawn en última instancia.
Bonus prima, ventaja, bonificación.
Brand marca, señal.
Bunch ramo.
Castling enroque.
Check jaque.
Checkmate jaque mate.
Chessboard tablero.
Chessman pieza.
Coming upon llegara.
Concerns interesa, incumbe, asunto, inquietud.
Defeat derrota.
Disparate heterogeneo, dispar.
Dunce burro.
entrench a (establish firmly) afianzar*, consolidar; he entrenched himself as chairman se afianzó en su puesto de presidente b (Mil) atrincherarse
Edge ventaja.
Encouraged ánimo, estímulo, alentar.
Equate equivalente.
Flatly llanamente.
Flush hacer salir, levantar, tirar algo.
Foremost más destacado, importante.
Gain ganancia.
Halfway a mitad de camino, entretanto.
Halt to come to a halt pararse, detenerse*; the car came to a sudden halt el coche se detuvo de repente; to bring sth to a halt parar or detener* algo; to call a halt to sth ponerle* fin a algo; it’s time to call a halt es hora de decir basta.
Inroads incursión.
Involving apasionante.
Kiks dar una patada/taconazo.
Knight caballo, caballero.
Leaf hoja, ala, el final de una rama de análisis: (When a program evaluates a leaf position, it considers mani positional factors: material, mobility...)
Left salir, dejar, abandonar (past. leave)
Lopsided torcido, asimétrico, desigual.
Meanwhile mientras tanto.
Miss perder, extrañar.
Pawn peón.
Perform ejecutar, representar.
Pin prender con alfileres, inmovilizar, colgar.
Pursued prosiguió.
Quiet tranquilo, silencioso.
Reach alcance, potencia.
Realm reino, terreno.
Root raíz del arbol
Scattered aislado, disperso, diseminado.
Scent rastro, perfume.
Search horizon horizonte de búsqueda.
Sin castigo, pecado.
Skewer clavada? (brocheta).
Smart listo, inteligente.
Sping girar.
Square casillas.
String up colgar.
String hilo, serie, ensartar.
Sucking chupando, absorber, primo (hacer el tonto).
Thoroughly a fondo, completamente.
Times veces.
Ultimately reducido.
Underpinning apuntalamiento.
Unlikely improbable.
Weakening ablandar, debilitar.
Weaknesses debilidades.