Changes

Jump to: navigation, search

HAL

9,455 bytes added, 15:25, 7 January 2020
Created page with "'''Home * Engines * HAL''' [[FILE:HAL9000.svg|border|right|thumb| HAL 9000 <ref>The famous red eye of [https://en.wikipedia.org/wiki/HAL_9000 HAL 9000], the..."
'''[[Main Page|Home]] * [[Engines]] * HAL'''

[[FILE:HAL9000.svg|border|right|thumb| HAL 9000 <ref>The famous red eye of [https://en.wikipedia.org/wiki/HAL_9000 HAL 9000], the fictional character in [[:Category:Arthur C. Clarke|Arthur C. Clarke's]] [https://en.wikipedia.org/wiki/Space_Odyssey Space Odyssey] series. [https://commons.wikimedia.org/wiki/File:HAL9000.svg Image] by Cryteria, October 1, 2010, [https://en.wikipedia.org/wiki/Wikimedia_Commons Wikimedia Commons]</ref> ]]

'''HAL''', (Heuristic Associative Linear-algorithm, HAL-9000, HAL9000)<br/>
an [[:Category:Open Source|open source chess program]] by [[Stephen F. Wheeler]], also dubbed HAL-9000 as pun of [https://en.wikipedia.org/wiki/HAL_9000 HAL 9000],
the fictional character in [[:Category:Arthur C. Clarke|Arthur C. Clarke's]] [https://en.wikipedia.org/wiki/Space_Odyssey Space Odyssey series],
first appearing in [https://en.wikipedia.org/wiki/2001:_A_Space_Odyssey_(film) 2001: A Space Odyssey]
<ref>[[Murray Campbell]] ('''1997'''). ''"An Enjoyable Game": How HAL Plays Chess''. in [https://mitpress.mit.edu/authors/david-g-stork David G. Stork] (ed.), ''[https://mitpress.mit.edu/books/hals-legacy Hal's Legacy - 2001's Computer as Dream and Reality]''. [https://en.wikipedia.org/wiki/MIT_Press MIT-Press], [http://web.stanford.edu/class/sts145/Library/campbell.pdf pdf]</ref>
<ref>[https://www.stmintz.com/ccc/index.php?id=357151 An interesting link] by [[Steven Edwards]], [[CCC]], March 29, 2004</ref>.
HAL was written in [[Pascal#TurboPascal|Turbo Pascal]] to run under the [[MS-DOS]] [[CLI|command line]], and was part of Wheeler's Ph.D. research during the late 80s and early 90s,
specifically on [https://en.wikipedia.org/wiki/Linearity linear] [https://en.wikipedia.org/wiki/Symbolic_computation symbolic] [https://en.wikipedia.org/wiki/Problem_solving problem-solving] systems and [https://en.wikipedia.org/wiki/Natural_language_processing natural language processing].

=Header=
<ref>[http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?tid=17529 HAL 9000] by Master Om, [[Computer Chess Forums|Rybka Forum]], June 10, 2010 (Download)</ref>
<pre>
* *)
(********************************************************************)
(* *)
(* H A L *)
(* *)
(* Heuristic Associative Linear-algorithm *)
(* - - - *)
(* *)
(*==================================================================*)
(* *)
(* C H E S S P R O G R A M 3 *)
(* - - - *)
(********************************************************************)
(* *)
(*------------------------------------------------------------------*)
(* *)
(* Author: Stephen F. Wheeler, Ph.D. A.I. Computer Scientist *)
(* *)
(* Language: Turbo Pascal v6.0 *)
(* *)
(*------------------------------------------------------------------*)
(* *)
(* *)
(* Date Written: September 8, 1990 *)
(* *)
(* Date of Last Revision: May 25, 2010 *)
(* *)
(* Revisions in This Version: *)
(* *)
(* 1) In Move_Selector Procedure set -INF and +INF for *)
(* re-searches for failed-low and failed-high when Level is < 3.*)
(* 05/15/10 *)
(* *)
(* 2) In EVAL Procedure decremented level variable at P^.LX by 1 *)
(* and stored it in an LX variable when level of play was < 3. *)
(* This corrected the missed checkmate declaration when playing *)
(* at skill levels 1 and 2. *)
(* 05/25/10 *)
(* *)
(* *)
(*------------------------------------------------------------------*)
(* C P 3 V 8 . 9 . 9 . 7 . 2 *)
(*------------------------------------------------------------------*)
(* *)
(*==================================================================*)
(* *)
(* C O M P U T E R C H E S S A U T O M A T O N *)
(* *)
(* THIS PROGRAM UTILIZES THE ITERATIVE-DEEPENING NEGAMAX *)
(* FAILSOFT ALPHA-BETA SEARCH ALGORITHM WITH QUIESCENCE, THE *)
(* KILLER HEURISTIC AND REFUTATION TABLES. *)
(* *)
(*==================================================================*)
(* *)
(********************************************************************)
</pre>
=Description=
==User Interface==
HAL has a [[CLI|command line interface]], and supports an interactive English dialogue between the opponent and itself to [[Entering Moves|receive]] and report its moves and to receive directives, such as skill level. The directives are given to HAL in the form of English sentences, which can be rather free-form in structure, and will even allow for slight misspellings in certain situations. HAL utilizes the [[Algebraic Chess Notation#LAN|long algebraic notation]] <ref>HAL-9000.zip/HALDOC.DOC</ref> <ref>HAL-9000.zip/CP3.pas</ref>.

==Board Representation==
HAL's [[Board Representation|board is represented]] by an [[Incremental Updates|incremental updated]] [[8x8 Board|8x8 board]], a two-dimensional [[Array|array]] of board cells, and a [[Piece-Lists|piece-list]] as array of piece cells indexed by side (1..2) and man index 1..16.

==Search==
The [[Search|search]] algorithm is pure [[Alpha-Beta|alpha-beta]] implemented as [[Recursion|recursive]] [[Negamax|negamax]] with [[Fail-Soft|fail-soft]] bounds inside the [[Iterative Deepening|iterative deepening]] framework with [[Aspiration Windows|aspiration windows]]. [[Move Ordering|Move ordering]] is improved by the [[Refutation Table|refutation table]] based on the [[Triangular PV-Table|triangular PV-table]], and a sophisticated [[Killer Heuristic|killer heuristic]] with up to four [[Killer Move|killers]] per [[Ply|ply]]. [[Selectivity]] is due to [[Check Extensions|check extensions]] and depth limited [[Quiescence Search|quiescence search]].

==Evaluation==
[[Evaluation]] considers [[Material|material balance]], a material exchange heuristic, and positional heuristic terms for [[Development|development]], [[King Safety|king attack]], [[Square Control|defence]], threats, [[Mobility|mobility]], advancement, [[Captures|captures]] and [[Check|checks]].

=See also=
* [[Marvin Minsky#HAL9000|Marvin Minsky | HAL 9000]]
* [[SAL]]

=Postings=
* [https://www.stmintz.com/ccc/index.php?id=120859 Off-topic: HAL] by [[Dave Gomboc]], [[CCC]], July 19, 2000
* [https://www.stmintz.com/ccc/index.php?id=239756 Frank Poole v HAL 9000 -- or is it CM9000?] by [[John Merlino]], [[CCC]], July 10, 2002 » [[Chessmaster]]
* [https://www.chess.com/forum/view/general/hal9000-levels-of-play HAL9000 Levels of Play] by [[Stephen F. Wheeler]], [https://en.wikipedia.org/wiki/Chess.com Chess.com], May 22, 2010
* [https://www.chess.com/forum/view/general/hal9000-chess-rating HAL9000 Chess Rating?] by [[Stephen F. Wheeler]], [https://en.wikipedia.org/wiki/Chess.com Chess.com], May 28, 2010
* [http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?tid=17529 HAL 9000] by Master Om, [[Computer Chess Forums|Rybka Forum]], June 10, 2010 (Download)

=External Links=
* [https://en.wikipedia.org/wiki/HAL_9000 HAL 9000 from Wikipedia]
* [https://en.wikipedia.org/wiki/Poole_versus_HAL_9000 Poole versus HAL 9000 from Wikipedia]
* [https://commons.wikimedia.org/wiki/Category:HAL_9000 Category:HAL 9000] from [https://en.wikipedia.org/wiki/Wikimedia_Commons Wikimedia Commons]
* [https://en.wikiquote.org/wiki/2001:_A_Space_Odyssey_(film)#HAL_9000 2001: A Space Odyssey | HAL 9000 - Wikiquote]

=References=
<references />
'''[[Engines|Up one level]]'''
[[Category:Open Source]]
[[Category:Pascal]]
[[Category:X86]]
[[Category:PC]]
[[Category:DosEngine]]
[[Category:Arthur C. Clarke]]

Navigation menu