new architecture
This commit is contained in:
44
problem/base.py
Normal file
44
problem/base.py
Normal file
@@ -0,0 +1,44 @@
|
||||
from typing import Callable
|
||||
|
||||
from config import ProblemConfig
|
||||
from core.state import State
|
||||
|
||||
|
||||
class BaseProblem:
|
||||
|
||||
jitable = None
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def setup(self, randkey, state: State = State()):
|
||||
"""initialize the state of the problem"""
|
||||
raise NotImplementedError
|
||||
|
||||
def evaluate(self, randkey, state: State, act_func: Callable, params):
|
||||
"""evaluate one individual"""
|
||||
raise NotImplementedError
|
||||
|
||||
@property
|
||||
def input_shape(self):
|
||||
"""
|
||||
The input shape for the problem to evaluate
|
||||
In RL problem, it is the observation space
|
||||
In function fitting problem, it is the input shape of the function
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
@property
|
||||
def output_shape(self):
|
||||
"""
|
||||
The output shape for the problem to evaluate
|
||||
In RL problem, it is the action space
|
||||
In function fitting problem, it is the output shape of the function
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
def show(self, randkey, state: State, act_func: Callable, params, *args, **kwargs):
|
||||
"""
|
||||
show how a genome perform in this problem
|
||||
"""
|
||||
raise NotImplementedError
|
||||
Reference in New Issue
Block a user