I work with search algorithms, often of an adversarial nature, and want to understand how to apply Mathematica's machine learning capabilities, especially those new in version 11, to this type of problem.

For example, a simple kind of search is checkers or chess where you want to find the best move. The search tree is too large to fully explore by brute force, so an intelligent method is needed to triage the search and decide what possibilities to search and what possibilities to ignore.

Most of the functions in Mathematica Machine Learning seem to be focused around classification or prediction, so it is not clear how they apply to the search problem. Typically in the search problem there are two key subtasks: SELECTION and EVALUATION. For a given node in the search tree, the system needs to evaluate the node, how good is it? Also, if the search algorithm decides to explore a new path it might have many choices of possible moves to make, how does it prioritize which ones to search first? That is the selection problem. So, ideally I want to understand how to apply Mathematica's machine learning functions to those two tasks, for a problem like searching a move tree in chess or similar game.

Note that in many instances, the relevant paradigm is reinforcement learning. The system learns from playing many games how to improve itself.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.