Skip to content

Update interfaces to follow optimal control formula#123

Merged
orzechow merged 193 commits into
mainfrom
update-interfaces
Sep 23, 2025
Merged

Update interfaces to follow optimal control formula#123
orzechow merged 193 commits into
mainfrom
update-interfaces

Conversation

@ll-nick

@ll-nick ll-nick commented Jun 6, 2025

Copy link
Copy Markdown
Collaborator

Breaking changes!

This improves some interfaces to resolve two issues:

  1. Include the environment model as part of the interface. So far it has only existed on a concept level.
  2. Reduce the amount of template parameters and enforce an interface of the verifier via an abstract class.

The main intention behind this refactoring is:
We've always wished getCommand() (the policy of a given behavior) to better follow the optimal control formula

$$u = μ(x(t), t)$$

with command $u$, policy $μ$, time $t$ and state $x(t)$.

Thus, we now changed the interfaces of getCommand(), checkInvocationCondition() etc. to:

Command getCommand(const Time& time, const EnvironmentModel& environmentModel)

It does introduce more boiler plate code. But, by passing the environment model via argument, the interface is more explicit now as of which information the decision-making is based on.

Please check the issue and PR for further details:
#116
#123 (comment)

#major

Closes #116

@ll-nick

ll-nick commented Jun 6, 2025

Copy link
Copy Markdown
Collaborator Author

Todo List

Abstract verifiers

Include environment model

Tutorial

Linter issues

see #114

Release

  • Write detailed release notes including mini "migration guide"

@ll-nick

ll-nick commented Jun 6, 2025

Copy link
Copy Markdown
Collaborator Author

I added #114 to the todo list here as I suppose that it might also include some breaking changes so maybe it's best to merge all that in one go via this branch.

@orzechow orzechow linked an issue Sep 22, 2025 that may be closed by this pull request
@orzechow orzechow mentioned this pull request Sep 22, 2025
@orzechow
orzechow marked this pull request as ready for review September 23, 2025 07:34

@orzechow orzechow left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is good to go 🚀

We went though this multiple times in the corresponding sub issues/PRs, docs and tutorials have been updated, this PRs description will serve as release description as well as breaking change notice.

@orzechow orzechow changed the title Update interfaces Update interfaces to follow optimal control formula Sep 23, 2025
@orzechow
orzechow merged commit 9bc8421 into main Sep 23, 2025
1 check passed
@orzechow
orzechow deleted the update-interfaces branch September 23, 2025 07:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update interfaces to better fit the concept Fix linter issues

2 participants