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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: PyMCT-1.0.0.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.0.tar.gz
Algorithm Hash digest
SHA256 72ad946533d670c124303d3724cc78e58be4cac02bdfa6a60c4f09fd4429c9da
MD5 4588a994914ba789b24d5bda98b04f6e
BLAKE2b-256 e63276ee178c1471017d27dd534943feefea9d5a89ddc272dcc68d854c2acb35

See more details on using hashes here.

File details

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

File metadata

  • Download URL: PyMCT-1.0.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cab10b78204df7241800d34c8a39b9a4c1fac6b574600fcb91d34b5a6fa7e187
MD5 421a3d16c444a27c64f2a452d12c1b23
BLAKE2b-256 ab80a2af851cb52a58fb7014b6d7a7e2f73b40815fd89877036c30b2963dcc3e

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