59 lines
2.1 KiB
Python
59 lines
2.1 KiB
Python
#####################################################
|
|
# Copyright (c) Xuanyi Dong [GitHub D-X-Y], 2021.05 #
|
|
#####################################################
|
|
from .synthetic_utils import TimeStamp
|
|
from .synthetic_env import EnvSampler
|
|
from .synthetic_env import SyntheticDEnv
|
|
from .math_core import LinearFunc
|
|
from .math_core import DynamicLinearFunc
|
|
from .math_core import DynamicQuadraticFunc
|
|
from .math_core import ConstantFunc, ComposedSinFunc
|
|
|
|
|
|
__all__ = ["TimeStamp", "SyntheticDEnv", "get_synthetic_env"]
|
|
|
|
|
|
def get_synthetic_env(total_timestamp=1000, num_per_task=1000, mode=None, version="v1"):
|
|
if version == "v1":
|
|
mean_generator = ConstantFunc(0)
|
|
std_generator = ConstantFunc(1)
|
|
elif version == "v2":
|
|
mean_generator = ComposedSinFunc()
|
|
std_generator = ComposedSinFunc(min_amplitude=0.5, max_amplitude=1.5)
|
|
else:
|
|
raise ValueError("Unknown version: {:}".format(version))
|
|
dynamic_env = SyntheticDEnv(
|
|
[mean_generator],
|
|
[[std_generator]],
|
|
num_per_task=num_per_task,
|
|
timestamp_config=dict(
|
|
min_timestamp=-0.5, max_timestamp=1.5, num=total_timestamp, mode=mode
|
|
),
|
|
)
|
|
if version == "v1":
|
|
function = DynamicLinearFunc()
|
|
function_param = dict()
|
|
function_param[0] = ComposedSinFunc(
|
|
amplitude_scale=ConstantFunc(3.0),
|
|
num_sin_phase=9,
|
|
sin_speed_use_power=False,
|
|
)
|
|
function_param[1] = ConstantFunc(constant=0.9)
|
|
elif version == "v2":
|
|
function = DynamicQuadraticFunc()
|
|
function_param = dict()
|
|
function_param[0] = ComposedSinFunc(
|
|
num_sin_phase=4, phase_shift=1.0, max_amplitude=1.0
|
|
)
|
|
function_param[1] = ConstantFunc(constant=0.9)
|
|
function_param[2] = ComposedSinFunc(
|
|
num_sin_phase=5, phase_shift=0.4, max_amplitude=0.9
|
|
)
|
|
else:
|
|
raise ValueError("Unknown version: {:}".format(version))
|
|
|
|
function.set(function_param)
|
|
# dynamic_env.set_oracle_map(copy.deepcopy(function))
|
|
dynamic_env.set_oracle_map(function)
|
|
return dynamic_env
|