diff --git a/Cargo.toml b/Cargo.toml index 3e4d8f1a..c0a05f55 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ members = [ "acme", "core", "derive", - "macros", + "macros" ] resolver = "2" diff --git a/acme/src/agents/agent.rs b/acme/src/agents/agent.rs index b8025b6c..20173218 100644 --- a/acme/src/agents/agent.rs +++ b/acme/src/agents/agent.rs @@ -2,3 +2,14 @@ Appellation: agent Contrib: FL03 */ +use super::{Architecture, AgentProgram}; + +pub trait Agent { + type Arch: Architecture; + type Program: AgentProgram; +} + + +pub struct SimpleAgent { + +} \ No newline at end of file diff --git a/acme/src/agents/environment.rs b/acme/src/agents/environment.rs index 29919bb3..669485c3 100644 --- a/acme/src/agents/environment.rs +++ b/acme/src/agents/environment.rs @@ -4,3 +4,7 @@ */ pub trait Environment {} + +pub trait Percept { + +} \ No newline at end of file diff --git a/acme/src/agents/mod.rs b/acme/src/agents/mod.rs index 8d3fdc66..be0bbe02 100644 --- a/acme/src/agents/mod.rs +++ b/acme/src/agents/mod.rs @@ -24,13 +24,11 @@ pub enum AgentType { pub trait Architecture { type Actuator: Actuator; type Observer: Observer; -} -pub trait Agent { - type Arch: Architecture; - type Program: AgentProgram; + fn actuators(&self) -> Vec>; } + pub trait Observer { type Observation; type Reward; @@ -64,12 +62,6 @@ pub trait AgentFunction { type Action; type Env: Environment; type Params; - type Reward; - type State; - fn agent_fn( - &self, - params: Self::Params, - env: &mut Self::Env, - ) -> (Self::Action, Self::Reward, Self::State); + fn compute(&self, params: Self::Params, env: &mut Self::Env) -> Self::Action; }