forked from experimental-design/bofire
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
separate into actual and meta strategy (experimental-design#363)
* separate into actual and meta strategy * fix circular condition import * remove duplications also for mapper
- Loading branch information
1 parent
faddc23
commit 4f8eacb
Showing
8 changed files
with
113 additions
and
129 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
from typing import Union | ||
|
||
from bofire.data_models.strategies.doe import DoEStrategy | ||
from bofire.data_models.strategies.factorial import FactorialStrategy | ||
from bofire.data_models.strategies.predictives.mobo import MoboStrategy | ||
from bofire.data_models.strategies.predictives.qehvi import QehviStrategy | ||
from bofire.data_models.strategies.predictives.qnehvi import QnehviStrategy | ||
from bofire.data_models.strategies.predictives.qparego import QparegoStrategy | ||
from bofire.data_models.strategies.predictives.sobo import ( | ||
AdditiveSoboStrategy, | ||
CustomSoboStrategy, | ||
MultiplicativeSoboStrategy, | ||
SoboStrategy, | ||
) | ||
from bofire.data_models.strategies.random import RandomStrategy | ||
from bofire.data_models.strategies.shortest_path import ShortestPathStrategy | ||
from bofire.data_models.strategies.space_filling import SpaceFillingStrategy | ||
|
||
ActualStrategy = Union[ | ||
SoboStrategy, | ||
AdditiveSoboStrategy, | ||
MultiplicativeSoboStrategy, | ||
CustomSoboStrategy, | ||
QehviStrategy, | ||
QnehviStrategy, | ||
QparegoStrategy, | ||
SpaceFillingStrategy, | ||
RandomStrategy, | ||
DoEStrategy, | ||
FactorialStrategy, | ||
MoboStrategy, | ||
ShortestPathStrategy, | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
from bofire.data_models.strategies.stepwise.stepwise import StepwiseStrategy | ||
|
||
# Meta strategies compositions of other strategies. | ||
# currently, we only have the Stepwise strategy as meta strategy. | ||
MetaStrategy = StepwiseStrategy |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,44 +1,14 @@ | ||
from typing import Dict, Type | ||
|
||
import bofire.data_models.strategies.api as data_models | ||
from bofire.strategies.doe_strategy import DoEStrategy | ||
from bofire.strategies.factorial import FactorialStrategy | ||
from bofire.strategies.predictives.botorch import BotorchStrategy | ||
from bofire.strategies.predictives.mobo import MoboStrategy | ||
from bofire.strategies.predictives.predictive import PredictiveStrategy | ||
from bofire.strategies.predictives.qehvi import QehviStrategy | ||
from bofire.strategies.predictives.qnehvi import QnehviStrategy | ||
from bofire.strategies.predictives.qparego import QparegoStrategy | ||
from bofire.strategies.predictives.sobo import ( | ||
AdditiveSoboStrategy, | ||
CustomSoboStrategy, | ||
MultiplicativeSoboStrategy, | ||
SoboStrategy, | ||
) | ||
from bofire.strategies.random import RandomStrategy | ||
from bofire.strategies.shortest_path import ShortestPathStrategy | ||
from bofire.strategies.space_filling import SpaceFillingStrategy | ||
from bofire.strategies.stepwise.stepwise import StepwiseStrategy | ||
from bofire.strategies.mapper_actual import STRATEGY_MAP as ACTUAL_MAP | ||
from bofire.strategies.mapper_meta import STRATEGY_MAP as META_MAP | ||
from bofire.strategies.strategy import Strategy | ||
|
||
STRATEGY_MAP: Dict[Type[data_models.Strategy], Type[Strategy]] = { | ||
data_models.RandomStrategy: RandomStrategy, | ||
data_models.SoboStrategy: SoboStrategy, | ||
data_models.AdditiveSoboStrategy: AdditiveSoboStrategy, | ||
data_models.MultiplicativeSoboStrategy: MultiplicativeSoboStrategy, | ||
data_models.CustomSoboStrategy: CustomSoboStrategy, | ||
data_models.QehviStrategy: QehviStrategy, | ||
data_models.QnehviStrategy: QnehviStrategy, | ||
data_models.QparegoStrategy: QparegoStrategy, | ||
data_models.SpaceFillingStrategy: SpaceFillingStrategy, | ||
data_models.DoEStrategy: DoEStrategy, | ||
data_models.StepwiseStrategy: StepwiseStrategy, | ||
data_models.FactorialStrategy: FactorialStrategy, | ||
data_models.MoboStrategy: MoboStrategy, | ||
data_models.ShortestPathStrategy: ShortestPathStrategy, | ||
} | ||
|
||
|
||
def map(data_model: data_models.Strategy) -> Strategy: | ||
cls = STRATEGY_MAP[data_model.__class__] | ||
data_cls = data_model.__class__ | ||
if data_cls in META_MAP: | ||
cls = META_MAP[data_cls] | ||
else: | ||
cls = ACTUAL_MAP[data_cls] | ||
|
||
return cls.from_spec(data_model=data_model) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
from typing import Dict, Type | ||
|
||
import bofire.data_models.strategies.api as data_models | ||
from bofire.strategies.doe_strategy import DoEStrategy | ||
from bofire.strategies.factorial import FactorialStrategy | ||
from bofire.strategies.predictives.mobo import MoboStrategy | ||
from bofire.strategies.predictives.qehvi import QehviStrategy | ||
from bofire.strategies.predictives.qnehvi import QnehviStrategy | ||
from bofire.strategies.predictives.qparego import QparegoStrategy | ||
from bofire.strategies.predictives.sobo import ( | ||
AdditiveSoboStrategy, | ||
CustomSoboStrategy, | ||
MultiplicativeSoboStrategy, | ||
SoboStrategy, | ||
) | ||
from bofire.strategies.random import RandomStrategy | ||
from bofire.strategies.shortest_path import ShortestPathStrategy | ||
from bofire.strategies.space_filling import SpaceFillingStrategy | ||
from bofire.strategies.strategy import Strategy | ||
|
||
STRATEGY_MAP: Dict[Type[data_models.Strategy], Type[Strategy]] = { | ||
data_models.RandomStrategy: RandomStrategy, | ||
data_models.SoboStrategy: SoboStrategy, | ||
data_models.AdditiveSoboStrategy: AdditiveSoboStrategy, | ||
data_models.MultiplicativeSoboStrategy: MultiplicativeSoboStrategy, | ||
data_models.CustomSoboStrategy: CustomSoboStrategy, | ||
data_models.QehviStrategy: QehviStrategy, | ||
data_models.QnehviStrategy: QnehviStrategy, | ||
data_models.QparegoStrategy: QparegoStrategy, | ||
data_models.SpaceFillingStrategy: SpaceFillingStrategy, | ||
data_models.DoEStrategy: DoEStrategy, | ||
data_models.FactorialStrategy: FactorialStrategy, | ||
data_models.MoboStrategy: MoboStrategy, | ||
data_models.ShortestPathStrategy: ShortestPathStrategy, | ||
} | ||
|
||
|
||
def map(data_model: data_models.Strategy) -> Strategy: | ||
cls = STRATEGY_MAP[data_model.__class__] | ||
return cls.from_spec(data_model=data_model) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
from typing import Dict, Type | ||
|
||
import bofire.data_models.strategies.api as data_models | ||
from bofire.strategies.stepwise.stepwise import StepwiseStrategy | ||
from bofire.strategies.strategy import Strategy | ||
|
||
# Meta strategies compositions of other strategies. | ||
STRATEGY_MAP: Dict[Type[data_models.Strategy], Type[Strategy]] = { | ||
data_models.StepwiseStrategy: StepwiseStrategy, | ||
} | ||
|
||
|
||
def map(data_model: data_models.Strategy) -> Strategy: | ||
cls = STRATEGY_MAP[data_model.__class__] | ||
return cls.from_spec(data_model=data_model) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters