Skip to content

Commit de91430

Browse files
authored
Merge pull request #34 from wniec/add-new-dummy-algorithm
feat: add new dummy algorithm: IDENTITY
2 parents b97ced7 + 67baadc commit de91430

3 files changed

Lines changed: 35 additions & 31 deletions

File tree

dummy_case.slurm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
SEED=${1:-42}
1313
CDB_VAL=1.5
1414

15-
PORTFOLIO=('G3PCX' 'DUMMY' 'DUMMY' 'DUMMY')
15+
PORTFOLIO=('G3PCX' 'IDENTITY' 'IDENTITY' 'IDENTITY')
1616
PORTFOLIO_STR=$(IFS="_"; echo "${PORTFOLIO[*]}")
1717

1818
# CONFIGURATION
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import numpy as np
2+
3+
from dynamicalgorithmselection.optimizers.Optimizer import Optimizer
4+
5+
6+
class IDENTITY(Optimizer):
7+
"""An optimizer that returns the same x, y it received — a no-op pass-through."""
8+
9+
def __init__(self, problem, options):
10+
Optimizer.__init__(self, problem, options)
11+
self.n_individuals = 1
12+
13+
def optimize(self, fitness_function=None, args=None):
14+
fitness = Optimizer.optimize(self, fitness_function)
15+
x = self.start_conditions.get("x", None)
16+
17+
if x is None:
18+
x = self.rng_initialization.uniform(
19+
self.initial_lower_boundary,
20+
self.initial_upper_boundary,
21+
size=(1, self.ndim_problem),
22+
)
23+
24+
while not self._check_terminations():
25+
self._evaluate_fitness(x[0])
26+
27+
return self._collect(fitness)
28+
29+
def _collect(self, fitness):
30+
for i in range(1, len(fitness)):
31+
if np.isnan(fitness[i]):
32+
fitness[i] = fitness[i - 1]
33+
results = Optimizer._collect(self, fitness)
34+
return results

single_algorithm_CDB_study.slurm

Lines changed: 0 additions & 30 deletions
This file was deleted.

0 commit comments

Comments
 (0)