anytime

Anytime algorithms in Python


License
GPL-3.0
Install
pip install anytime==1.0.0.dev2

Documentation

A simple framework for implementing anytime algorithms in Python.

INSTALLATION:

sudo -H pip3 install anytime

USAGE EXAMPLE:

"""
The following example program gets a very large vector
and tries to find the largest element in the vector.
It stops after a pre-specified time, and returns the largest element found so far.
"""

import random, numpy as np
from AnytimeAlgorithm2 import AnytimeAlgorithm

class MaximumFinder(AnytimeAlgorithm):
    def __init__(self, vector):
        self.vector = vector
        self.currentMaximum = 0

    def update(self):
        i = random.randint(0,len(self.vector)-1)
        if self.vector[i]>self.currentMaximum:
            self.currentMaximum = self.vector[i]
            print("self",self,"result",self.currentMaximum)

    def result(self):
        return self.currentMaximum

v = np.random.rand(10000000)
finder = MaximumFinder(v)
print(finder.result_after(0.0001))  # seconds
print(finder.result_after(0.001))  # seconds
print(finder.result_after(0.01)) # seconds