--- title: Environments keywords: fastai sidebar: home_sidebar summary: "Classes to create simulated environment functions." description: "Classes to create simulated environment functions." nb_path: "nbs/05_environments.ipynb" ---
%load_ext autoreload
%autoreload 2
#import sys
#sys.path.append("..")
from pct.functions import Constant
from pct.functions import IndexedParameter
from pct.putils import FunctionsList
from pct.functions import Proportional
render=False
print(render)
acrobot = OpenAIGym("Acrobot-v1", render=render)
namespace=acrobot.namespace
acrobot.add_link(Constant(1, namespace=namespace))
acrobot.get_config()
acrobot()
print(acrobot.reward)
print(getattr(acrobot, "reward"))
acrobot.output_string()
acrobot.value[0]
The IndexedParameter type retrieves a value from a linked function based upon an index.
cos_angle1 = IndexedParameter(0, name="cos_angle1", namespace=namespace)
cos_angle1.add_link(acrobot)
print(cos_angle1.get_config())
cos_angle1()
acrobot.close()
pen = Pendulum(render=True, namespace=namespace)
pen.add_link(Constant([1], namespace=namespace))
print(pen.get_config())
pen.run(steps=10, verbose=True)
pen.close()
vm = VelocityModel(name='VelocityModel', namespace=namespace)
vm.add_link(Constant(1, name='mycon'))
print(vm.summary())
config = vm.get_config()
print(config)
assert config == {'type': 'VelocityModel', 'name': 'VelocityModel', 'value': 0, 'links': {0: 'mycon'}, 'mass': 50}
vm.run(steps=10, verbose=True)
#notebook2script()