Source code for alts.modules.blueprint
from __future__ import annotations
from typing import TYPE_CHECKING
from dataclasses import dataclass, field
from alts.core.blueprint import Blueprint
from alts.modules.data_process.time_source import IterationTimeSource
from alts.modules.data_process.process import DataSourceProcess
from alts.modules.oracle.query_queue import FCFSQueryQueue
from alts.modules.oracle.data_source import LineDataSource
from alts.modules.stopping_criteria import TimeStoppingCriteria
from alts.modules.queried_data_pool import FlatQueriedDataPool
from alts.modules.query.query_sampler import LatinHypercubeQuerySampler, UniformQuerySampler
from alts.core.experiment_modules import InitQueryExperimentModules
from alts.core.query.query_selector import ResultQuerySelector
from alts.modules.query.query_optimizer import NoQueryOptimizer
from alts.modules.query.query_decider import AllQueryDecider
from alts.modules.evaluator import PlotAllDataPointsEvaluator, PrintExpTimeEvaluator
from alts.core.oracle.oracles import POracles
from alts.core.data.data_pools import ResultDataPools
if TYPE_CHECKING:
from typing import Iterable, Optional
from alts.core.data_process.time_source import TimeSource
from alts.core.data_process.process import Process
from alts.core.stopping_criteria import StoppingCriteria
from alts.core.experiment_modules import ExperimentModules
from alts.core.evaluator import Evaluator
from alts.core.oracle.oracles import Oracles
from alts.core.data.data_pools import DataPools
[docs]
@dataclass
class BaselineBlueprint(Blueprint):
repeat: int = 1
time_source: TimeSource = IterationTimeSource()
oracles: Oracles = POracles(process = FCFSQueryQueue())
data_pools: DataPools = ResultDataPools(result=FlatQueriedDataPool())
process: Process = DataSourceProcess(
data_source=LineDataSource()
)
stopping_criteria: StoppingCriteria = TimeStoppingCriteria(stop_time=100)
experiment_modules: ExperimentModules = InitQueryExperimentModules(
initial_query_sampler = LatinHypercubeQuerySampler(num_queries=10),
query_selector=ResultQuerySelector(
query_optimizer=NoQueryOptimizer(query_sampler=UniformQuerySampler()),
query_decider=AllQueryDecider(),
),
)
evaluators: Iterable[Evaluator] = (PlotAllDataPointsEvaluator(), PrintExpTimeEvaluator())