Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Intervention Scheme for ABM #501

Open
mknaranja opened this issue Dec 9, 2022 · 0 comments · May be fixed by #795
Open

Add Intervention Scheme for ABM #501

mknaranja opened this issue Dec 9, 2022 · 0 comments · May be fixed by #795
Assignees
Labels
loc::backend This issue concerns the C++ backend implementation. model::abm This issue concerns any kind of agent-based model.

Comments

@mknaranja
Copy link
Member

With #257 we implemented mask usage. Furthermore, we can prevent people from going to certain locations, however, we do not yet have a universal and clear InterventionScheme.

The problem with the current implementation of Masks is:

  1. You cannot require "no mask" as MaskType = None is not implemented.
  2. If MaskType = None was implemented, then "time_used" would be reset and everything I would reuse my previous mask, time would start from zero. This could be "solved" by having two mask_types m_current and m_preference. The current could be None and time_used would point to preference if no mask is worn at the moment. But this is not very elegant.
  3. Another problem is that for each contact reduction intervention, like reduced maximum capacity, minimal_distance or so, we would need at least one other member variable.

From 1.-3. I came to the idea that we would maybe template the location as

template<typename... LocalInterventions>
class Location
{
    // ...
};

and then I could maybe have

Location<Masks> or Location<Masks, MinimalDistance>

where only the considered interventions are in the list. When designing this step by step it just came to my head that we cannot only use the active NPIs in the list since this will be set a compile time. So we would then maybe even need start and end dates for the interventions...

However, I have no good design / idea on the remaining part of this proposed change.

Maybe we also go with an InterventionScheme as the TestingScheme which is on Locations and ...

Originally posted by @mknaranja in #471 (comment)

@mknaranja mknaranja added loc::backend This issue concerns the C++ backend implementation. model::abm This issue concerns any kind of agent-based model. labels Dec 9, 2022
@mknaranja mknaranja moved this to Product Backlog in MEmilio: Agent-Based-Model Dec 9, 2022
@DavidKerkmann DavidKerkmann self-assigned this Apr 24, 2023
@DavidKerkmann DavidKerkmann moved this from Product Backlog to Sprint Backlog in MEmilio: Agent-Based-Model Apr 24, 2023
@DavidKerkmann DavidKerkmann moved this from Sprint Backlog to Development in MEmilio: Agent-Based-Model Jul 17, 2023
@DavidKerkmann DavidKerkmann moved this from Development to Sprint Backlog in MEmilio: Agent-Based-Model Sep 18, 2023
@DavidKerkmann DavidKerkmann moved this from Sprint Backlog to Development in MEmilio: Agent-Based-Model Oct 9, 2023
@DavidKerkmann DavidKerkmann moved this from Development to Sprint Backlog in MEmilio: Agent-Based-Model Oct 9, 2023
@DavidKerkmann DavidKerkmann moved this from Sprint Backlog to Next up in MEmilio: Agent-Based-Model Oct 9, 2023
@DavidKerkmann DavidKerkmann linked a pull request Oct 9, 2023 that will close this issue
10 tasks
@DavidKerkmann DavidKerkmann linked a pull request Oct 9, 2023 that will close this issue
10 tasks
@xsaschako xsaschako moved this from Product Backlog to Next up in MEmilio: Agent-Based-Model Development Nov 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
loc::backend This issue concerns the C++ backend implementation. model::abm This issue concerns any kind of agent-based model.
Projects
Status: Next up 🆙
Development

Successfully merging a pull request may close this issue.

2 participants