Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Availability  





2 Search techniques  



2.1  Multi-Prob cut  







3 Evaluation techniques  



3.1  Disk-square tables  





3.2  Mobility-based  





3.3  Pattern-based / pattern coefficients  







4 Opening book  





5 Other optimizations  





6 Solving Othello  



6.1  Othello 4 × 4  





6.2  Othello 6 × 6  





6.3  Othello 8 × 8  







7 Milestones in computer Othello  





8 List of top Othello/ Reversi programs  





9 See also  





10 Notes  





11 External links  














Computer Othello






Deutsch
Español

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


Computer Othello
NTest - a strong othello program

Computer Othello refers to computer architecture encompassing computer hardware and computer software capable of playing the game of Othello. It was notably included in Microsoft Windows from 1.0toXP, where it is simply known as Reversi.

Availability[edit]

There are many Othello programs such as NTest, Saio, Edax, Cassio, Pointy Stone, Herakles, WZebra, and Logistello that can be downloaded from the Internet for free. These programs, when run on any up-to-date computer, can play games in which the best human players are easily defeated. This is because although the consequences of moves are predictable for both computers and humans, computers are better at exploring them.[1]

Search techniques[edit]

Computer Othello programs search for any possible legal moves using a game tree. In theory, they examine all positions / nodes, where each move by one player is called a "ply". This search continues until a certain maximum search depth or the program determines that a final "leaf" position has been reached.

A naive implementation of this approach, known as MinimaxorNegamax, can only search to a small depth in a practical amount of time, so various methods have been devised to greatly increase the speed of the search for good moves. These are based on Alpha-beta pruning, Negascout, MTD(f), and NegaC*.[2] The alphabeta algorithm is a method for speeding up the Minimax searching routine by pruning off cases that will not be used anyway. This method takes advantage of the fact that every other level in the tree will maximize and every other level will minimize.[3]

Several heuristics are also used to reduce the size of the searched tree: good move ordering, transposition table and selective Search.[4]

To speed up the search on machines with multiple processors or cores, a "parallel search" may be implemented. Several experiments have been made with the game Othello, like ABDADA[5] or APHID[6]Onrecent programs, the YBWC[7] seems the preferred approach.

Multi-Prob cut[edit]

Multi-ProbCut is a heuristic used in alpha–beta pruning of the search tree.[8] The ProbCut heuristic estimates evaluation scores at deeper levels of the search tree using a linear regression between deeper and shallower scores. Multi-ProbCut extends this approach to multiple levels of the search tree. The linear regression itself is learned through previous tree searches, making the heuristic a kind of dynamic search control.[9] It is particularly useful in games such as Othello where there is a strong correlation between evaluations scores at deeper and shallower levels.[10][11]

Evaluation techniques[edit]

There are three different paradigms for creating evaluation functions.

Disk-square tables[edit]

Different squares have different values - corners are good and the squares next to corners are bad. Disregarding symmetries, there are 10 different positions on a board, and each of these is given a value for each of the three possibilities: black disk, white disk and empty. A more sophisticated approach is to have different values for each position during the different stages of the game; e.g. corners are more important in the opening and early midgame than in the endgame.[12]

Mobility-based[edit]

Most human players strive to maximize mobility (number of moves available) and minimize frontier disks (disks adjacent to empty squares). Player mobility and opponent mobility are calculated, and player potential mobility and opponent potential mobility are calculated as well.[13] These measures can be found very quickly, and they significantly increase playing strength. Most programs have knowledge of edge and corner configurations and try to minimize the number of disks during the early midgame, another strategy used by human players.[12]

Pattern-based / pattern coefficients[edit]

Mobility maximization and frontier minimization can be broken down into local configurations which can be added together; the usual implementation is to evaluate each row, column, diagonal and corner configuration separately and add together the values, many different patterns have to be evaluated.[12] The process of determining values for all configurations is done by taking a large database of games played between strong players and calculating statistics for each configuration in each game stage from all the games.[12]

The most common choice to predict the final disc difference uses a weighted disk difference measure where the winning side gets a bonus corresponding to the number of disks.[12]

Opening book[edit]

Opening books aid computer programs by giving common openings that are considered good ways to counter poor openings. All strong programs use opening books and update their books automatically after each game. To go through all positions from all games in the game database and determine the best move not played in any database game, transposition tables are used to record positions that have been previously searched. This means those positions do not need to be searched again.[12] This is time-consuming as a deep search must be performed for each position, but once this is done, updating the book is easy. After each game played, all new positions are searched for the best deviation.

Other optimizations[edit]

Faster hardware and additional processors can improve Othello-playing program abilities, such as deeper ply searching.

Solving Othello[edit]

During gameplay, players alternate moves. The human player uses black counters while the computer uses white. The human player starts the game.[1] Othello is strongly solved on 4×4 and 6×6 boards, with the second player (white) winning in perfect play.[14][15]

Othello 4 × 4[edit]

Othello 4x4 has a very small game tree and has been solved in less than one second by many simple Othello programs that use the Minimax method, which generates all possible positions (nearly 10 million). The result is that white wins with a +8 margin (3-11).[14]

Othello 6 × 6[edit]

Othello 6x6 has been solved in less than 100 hours by many simple Othello programs that use the Minimax method, which generates all possible positions (nearly 3.6 trillion). The result is that white wins with a +4 margin (16-20).[16]

Othello 8 × 8[edit]

The Othello 8x8 game tree size is estimated at 1054 nodes, and the number of legal positions is estimated at less than 1028. As of October 2023, a preprint claims that the game has been solved, with optimal result being draw.[17][18] Computation results is also shared, making it one of the largest publicly available book.[19]

Some top programs have expanded their books for many years now. As a result, many lines are in practice draws or wins for either side. Regarding the three main openings of diagonal, perpendicular and parallel, it appears that both diagonal and perpendicular openings lead to drawing lines, while the parallel opening is a win for black. The drawing tree also seems bigger after the diagonal opening than after the perpendicular opening.[20][failed verification] The parallel opening has strong advantages for the black player, enabling black to always win in a perfect play.[21][failed verification]

Milestones in computer Othello[edit]

a b c d e f g h
1 a1X b1X c1X d1X e1X f1X g1X h1X 1
2 a2X b2X c2O d2X e2X f2X g2X h2X 2
3 a3X b3X c3X d3O e3X f3X g3O h3X 3
4 a4X b4X c4O d4X e4X f4O g4X h4X 4
5 a5X b5X c5X d5X e5X f5X g5X h5X 5
6 a6X b6X c6X d6O e6X f6X g6X h6X 6
7 a7X b7X c7O d7O e7O f7X g7X h7X 7
8 a8X b8X c8X d8X e8X f8X g8X h8X 8
a b c d e f g h

List of top Othello/ Reversi programs[edit]

  1. NTest (Ntest) by Chris Welty
  2. Edax (Edax Archived 2013-04-06 at the Wayback Machine) by Richard Delorme
  3. Logistello (Logistello) by Michael Buro

See also[edit]

  • Computer shogi
  • Computer chess
  • Computer Olympiad
  • Reversi
  • Notes[edit]

    1. ^ a b "Dcs.gla.ac.uk" (PDF). Archived from the original (PDF) on January 3, 2011.
  • ^ Jean-Christophe Weill (1992). The NegaC* Search. ICCA Journal, Vol. 15, No. 1, pp. 3-7.
  • ^ Armanto, Hendrawan; Santoso, Joan; Giovanni, Daniel; Kurniawan, Faris; Yudianto, Ricky; Gunawan, Steven (October 2012). "Evolutionary Neural Network for Othello Game". Procedia - Social and Behavioral Sciences. 57: 419–425. doi:10.1016/j.sbspro.2012.09.1206.
  • ^ Buro, M., "Experiments with Multi-ProbCut and a New High-Quality Evaluation Function for Othello", Games in AI Research, H.J. van den Herik, H. Iida (ed.), ISBN 90-621-6416-1, 2000
  • ^ Jean-Christophe Weill (1996). The ABDADA Distributed Minimax Search Algorithm. Proceedings of the 1996 ACM Computer Science Conference, pp. 131-138. ACM, New York, N.Y, reprinted ICCA Journal Vol. 19, No. 1
  • ^ Mark Brockington (1997). KEYANO Unplugged - The Construction of an Othello Program. Technical Report TR-97-05, Department of Computing Science, University of Alberta.
  • ^ Rainer Feldmann, Peter Mysliwietz, Burkhard Monien (1991). A Fully Distributed Chess Program. Advances in Computer Chess 6
  • ^ Buro, Michael (1997). "Experiments with Multi-ProbCut and a New High-Quality Evaluation Function for Othello". Games in AI Research. 34 (4): 77–96.
  • ^ Bulitko, Vadim; Lustrek, Mitja; Schaeffer, Jonathan; Bjornsson, Yngvi; Sigmundarson, Sverrir (1 June 2008). "Dynamic control in real-time heuristic search". Journal of Artificial Intelligence Research. 32: 419–452. doi:10.1613/jair.2497.
  • ^ Fürnkranz, Johannes (2001). Machines that learn to play games | Guide books. Nova Science Publishers, Inc.6080 Jericho Tpke. Suite 207 Commack, NYUnited States: Nova Science Publishers, Inc. pp. 11–59. ISBN 978-1-59033-021-0.{{cite book}}: CS1 maint: location (link)
  • ^ Heinz, Ernst A. (2013). Scalable Search in Computer Chess: Algorithmic Enhancements and Experiments at High Search Depths. Springer Science & Business Media. p. 32. ISBN 978-3-322-90178-1.
  • ^ a b c d e f Gunnar Andersson (2007). "Writing an Othello program". radagast.se. Retrieved 2023-02-12.
  • ^ How Ntest Works Archived 2011-11-09 at the Wayback Machine March 02, 2005
  • ^ a b Solution of Othello 4 × 4 Archived 2011-07-07 at the Wayback Machine September 02, 2008
  • ^ Perfect play in 6x6 Othello from two alternative starting positions Archived November 1, 2009, at the Wayback Machine November 17, 2004
  • ^ F. Pittner (July 2006). "Tothello home page". www.tothello.com. Retrieved 2023-02-12.
  • ^ "Othello is Solved" (PDF). Retrieved 2023-11-04.
  • ^ Takizawa, Hiroki. "reversi-scripts". Github. Retrieved 4 November 2023.
  • ^ "Analyses of the Game of Othello's Positions". Retrieved 2023-11-04.
  • ^ "Strongest othello program in term of artificial intelligent". Archived from the original on 2007-01-09. Retrieved 2010-04-05.
  • ^ "SaioApp project – The strongest Othello engine". Retrieved 2023-02-12.
  • ^ Gardner, Martin. Mathematical Recreations. Scientific American, April 1977.
  • ^ Duda, Richard O (October 1977). "Othello, a New Ancient Game". BYTE. pp. 60–62.
  • ^ Wright, Ed (November–December 1977). "Othello". Creative Computing. pp. 140–142. Retrieved 18 October 2013.
  • ^ a b Frey, Peter W (July 1980). "Simulating Human Decision-Making on a Personal Computer". BYTE. p. 56. Retrieved 18 October 2013.
  • ^ "Computer Othello - Videogame by Nintendo".
  • ^ a b c d e f "The History of Computer Games" (PDF). Archived from the original (PDF) on January 24, 2011.
  • ^ a b Frey, Peter W (July 1981). "The Santa Cruz Open / Othello Tournament for Computers". BYTE. p. 16. Retrieved 18 October 2013.
  • ^ Michael Buro (20 August 1997). "Othello match of the year". skatgame.net. Retrieved 2023-02-12.
  • ^ Yamana, Takuto. "Egaroucid Self-Play Transcripts". Othello AI Egaroucid. Retrieved 5 November 2023.
  • External links[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=Computer_Othello&oldid=1212833268"

    Categories: 
    Reversi software
    Abstract strategy games
    PSPACE-complete problems
    Hidden categories: 
    CS1 maint: location
    Webarchive template wayback links
    Articles with short description
    Short description matches Wikidata
    Articles using infobox templates with no data rows
    All articles with failed verification
    Articles with failed verification from July 2023
     



    This page was last edited on 9 March 2024, at 19:54 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki