We can summarize the suggested multi-step retrosynthesis methods by dividing them into three categories: proof-number search (PNS) , Monte Carlo tree search (MCTS) , and A*-like algorithms . In PNS, the retrosynthesis is carried out in a directed bipartite graph consisting of molecule and reaction nodes, i.e. an AND/OR graph (see Figure ). The proof-number and disproof-number of each node, which is the number of children nodes necessary to prove and disprove a node, respectively, are used to guide the search. PNS-based retrosynthesis algorithms utilize these numbers differently and also add additional heuristics to increase the efficiency of the search . We implemented a depth-first PNS (DFPN) algorithm in the AiZynthFinder software that combines ideas from two different algorithms . In MCTS, the retrosynthesis is carried out in a different type of direct graph, where each node is a super-node consisting of one or more molecules that potentially can be extended. The search is typically guided by upper-bound confidence statistics that take into account how many times a node has been visited and a reward function for terminal nodes that can take different forms . We have previously described the MCTS implementation in the AiZynthFinder software , where the reward function is based on the depth of the terminal node and how many of the molecules represented by the node is in stock. Finally, several different A*-like algorithms have been described for retrosynthesis [21, . The Chematica program carries out the search in a supernode tree and scores the node based on customizable molecule and reaction cost functions . In the Retro* algorithm, the search is carried out in an AND/OR graph and the search is guided by a molecule cost that is provided by a neural network trained on extracted routes . We have implemented the Retro* algorithm in the AiZynthFinder software.