Skip to main content

A simple implement for MCTS algorithm.

Project description

PyMCT

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

Example

from cmath import inf
from random import randint, random
from PyMCT.MCT import MCTNode, MCTS
from typing import Union, List
from anytree import RenderTree

create a implement of MCTS class that has unique reward function, expand function and terminate condition.

class testMCTS(MCTS):

    def __init__(self, root: MCTNode, c: Union[int, float], max_iter: int, debug=False) -> None:
        super().__init__(root, c, max_iter, debug)

    def get_reward(self, node: MCTNode):
        node._reward = node.state

    def expand(self, node: MCTNode) -> List[MCTNode]:
        continue_chance = random()
        if continue_chance <1:
            for i in range(1,randint(1,5)):
                new_node = MCTNode(state=(self.root.depth+1)*i,parent=node)
        return node.children

    def terminate(self) -> bool:
        for node in self.root.descendants:
            if node.uct == inf:
                return False
        if self.root.height >= 3:
            return True
        else:
            return False

pass the root

test_mcts = testMCTS(root=root, c=2, debug=True, max_iter=100)

start the seacrh

test_mcts.iterate()

render the tree

print(RenderTree(test_mcts.root))

print the optimal path

test_mcts.find_optimal_path()
print(test_mcts.optimal_path)

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.0.1.tar.gz (15.9 kB view details)

Uploaded Source

Built Distribution

PyMCT-1.0.1-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for PyMCT-1.0.1.tar.gz
Algorithm Hash digest
SHA256 0ade83760d61059efd76eda7b633a822a359963558d13b3a9461efb8d1e94b68
MD5 44407479911a559a2f9e5a3fc08b2e68
BLAKE2b-256 2587e65a37e0f8b4675687d6f59339cc806a48c550819a6d3e6c9013682beb06

See more details on using hashes here.

File details

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

File metadata

  • Download URL: PyMCT-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 16.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.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2e600505ef01b81f9fc641211f131031be0b6b586fe6214f8000df8fc0435f80
MD5 e14128b6eeedd8156c0b03430f5ca428
BLAKE2b-256 b9fa1c4d098ce9ba1b7c276dd74818b28fa6235f34a1975316011d90637d824c

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