Old engine for Continuous Time Bayesian Networks. Superseded by reCTBN. 🐍
https://github.com/madlabunimib/PyCTBN
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.0 KiB
65 lines
2.0 KiB
import sys
|
|
sys.path.append('../')
|
|
|
|
import typing
|
|
|
|
import structure_graph.set_of_cims as sofc
|
|
|
|
|
|
class Cache:
|
|
"""
|
|
This class has the role of a cache for SetOfCIMS of a test node that have been already computed during the ctpc algorithm.
|
|
|
|
:list_of_sets_of_parents: a list of Sets of the parents to which the cim in cache at SAME index is related
|
|
:actual_cache: a list of setOfCims objects
|
|
"""
|
|
|
|
def __init__(self):
|
|
self.list_of_sets_of_parents = []
|
|
self.actual_cache = []
|
|
|
|
def find(self, parents_comb: typing.Set): #typing.Union[typing.Set, str]
|
|
"""
|
|
Tries to find in cache given the symbolic parents combination parents_comb the SetOfCims related to that parents_comb.
|
|
Parameters:
|
|
parents_comb: the parents related to that SetOfCims
|
|
Returns:
|
|
A SetOfCims object if the parents_comb index is found in list_of_sets_of_parents.
|
|
None otherwise.
|
|
|
|
"""
|
|
try:
|
|
#print("Cache State:", self.list_of_sets_of_indxs)
|
|
#print("Look For:", parents_comb)
|
|
result = self.actual_cache[self.list_of_sets_of_parents.index(parents_comb)]
|
|
print("CACHE HIT!!!!", parents_comb)
|
|
return result
|
|
except ValueError:
|
|
return None
|
|
|
|
def put(self, parents_comb: typing.Union[typing.Set, str], socim: sofc.SetOfCims):
|
|
"""
|
|
Place in cache the SetOfCims object, and the related sybolyc index parents_comb in list_of_sets_of_parents
|
|
|
|
Parameters:
|
|
parents_comb: the symbolic set index
|
|
socim: the related SetOfCims object
|
|
|
|
Returns:
|
|
void
|
|
"""
|
|
#print("Putting in cache:", parents_comb)
|
|
self.list_of_sets_of_parents.append(parents_comb)
|
|
self.actual_cache.append(socim)
|
|
|
|
def clear(self):
|
|
"""
|
|
Clear the contents of both caches.
|
|
|
|
Parameters:
|
|
void
|
|
Returns:
|
|
void
|
|
"""
|
|
del self.list_of_sets_of_parents[:]
|
|
del self.actual_cache[:] |