Skip to main content

A simple implement for MCTS algorithm.

Project description

PyMCT

This is a simple implement for Manto Carlo Tree Search algorithm.

Install

pip install --upgrade PyMCT

Example

This is a example for searching a randomly generated tree, each transcation to a new state is given with random reward.

Import moudles:

from random import randint
from PyMCT.MCT import MCTNode, MCTS, State

create the test case:

class Test:
    _root:MCTNode
    _MCTS:MCTS
    
    def __init__(self, root_state:int, c:int=2, max_iter:int=10):       
        root_state = State(root_state)
        self._root = MCTNode(state=root_state)
        #Set the serach with max iteration and max tree heights
        self._MCTS = MCTS(self.root,c=c,max_iter=max_iter, max_height=2, debug=True)
        
    #Always return a random reward. Note that the function must take one MCTNode as argument, and return a value.
    def reward_func(slef, node:MCTNode):
        return randint(0, 10)
    
    #Randomly expand the tree with new node. Note that the function must take one MCTNode as argument, and return a list of new states.
    def discover_func(self, node:MCTNode):
        new_states = list()
        for i in range(randint(1,10)):
            new_states.append(State(i))
        return new_states

    def run(self):
        #Pass in the reward and discover function, start the algorithm!
        self.MCTS.iterate(self.reward_func, self.discover_func)
        
        #Find the optimal path.
        self.MCTS.find_optimal_path()
        
        #Display the tree, Note that if no tag is given to MCTNode, a random tag will be generated and display here.
        self.MCTS.render_tree()
        
        #Print the oprimal path. This is the list of MCTNodes.
        print(self.MCTS.optimal_path)
    
    @property
    def root(self):
        return self._root
    
    @property
    def MCTS(self):
        return self._MCTS

run the test:

if __name__ == '__main__':
    test = Test(0)
    test.run()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PyMCT-1.1.3.tar.gz (17.0 kB view details)

Uploaded Source

Built Distribution

PyMCT-1.1.3-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file PyMCT-1.1.3.tar.gz.

File metadata

  • Download URL: PyMCT-1.1.3.tar.gz
  • Upload date:
  • Size: 17.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.7

File hashes

Hashes for PyMCT-1.1.3.tar.gz
Algorithm Hash digest
SHA256 1044e62d71a1afdbef9588622573e2fb9285fc2738b8dba4972d652c7a11ef46
MD5 0b7064ca6577e98d1c2fb12067893327
BLAKE2b-256 08e0f51063c8e05be281c8240cfc075d1581bf8c54fac67a9447c8c527cb5a9a

See more details on using hashes here.

File details

Details for the file PyMCT-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: PyMCT-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 17.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.7

File hashes

Hashes for PyMCT-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 93a818327f76ef022540eabe4fcd94dbc8d5ca7709f7326254f3d359c2ea22f0
MD5 accf42ab02ac1f947c87cfd17a91aef9
BLAKE2b-256 a8502c578151790f50acdd2acb0cb990d337986d988e02ecad8e0104bfa3a699

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page