Skip to content

Enhance testing logic in abm #1250

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

Open
2 tasks done
xsaschako opened this issue Apr 15, 2025 · 0 comments · May be fixed by #1276
Open
2 tasks done

Enhance testing logic in abm #1250

xsaschako opened this issue Apr 15, 2025 · 0 comments · May be fixed by #1276
Assignees
Labels
class::bug Bugs found in the software class::improvement Cleanup that doesn't affect functionality class::performance Performance related issues loc::backend This issue concerns the C++ backend implementation. model::abm This issue concerns any kind of agent-based model. prio::moderate The priority of this task is moderate.

Comments

@xsaschako
Copy link
Member

xsaschako commented Apr 15, 2025

Motivation / Current Behaviour

In the paper several things showed what needed revision in the testing logic.
We should decouple testing strategies from actually being able to enter a location.

Enhancement description

The following things got enhanced:

  • remove add and remove_age_group & remove_infection_state as well as for testing schemes were deleted because the workflow is better if you set up a new testing strategy for that time. This prohibits to fiddle with it all the time. Also this led to a few difficult to debug bugs in the development. (more options != better)

  • completely change how testing schemes are updated because runtime was HEAVILY affected, when many ids are put into the vector. (e.g. searching for a testing scheme for a specific id would be log n runtime. -> no linear scaling if people ~ locations

  • Renaming of funcitons for better understandability. For now we still test + allow access.

  • in the future because we can't delete things, we should add an optional testing scheme where it can be active depending on a function, out of scope for this issue though

  • We allow the user to add several testing schemes trusting that when he/she adds two schemes and someone gets potentially tested twice its on purpose.

  • We don't schedule. This means, there are a few if checks for idle testing schemes. This doesnt affect runtime mostly, when idle testingschemes are <1000 per location. This is a tradeoff between a very unlikely scenario and error proneness.

  • funnily enough with testing schemes the code runs a little faster

Additional context

No response

Checklist

  • Attached labels, especially loc:: or model:: labels.
  • Linked to project
@xsaschako xsaschako added class::bug Bugs found in the software class::improvement Cleanup that doesn't affect functionality class::performance Performance related issues loc::backend This issue concerns the C++ backend implementation. model::abm This issue concerns any kind of agent-based model. prio::moderate The priority of this task is moderate. labels Apr 15, 2025
@xsaschako xsaschako self-assigned this Apr 15, 2025
@DavidKerkmann DavidKerkmann moved this from Product Backlog 📕 to Development 🧑‍💻👩‍💻 in MEmilio: Agent-Based-Model Development May 5, 2025
@xsaschako xsaschako linked a pull request May 15, 2025 that will close this issue
12 tasks
@xsaschako xsaschako moved this from Development 🧑‍💻👩‍💻 to Review 🕵️‍♂️ in MEmilio: Agent-Based-Model Development May 16, 2025
@xsaschako xsaschako moved this from Review 🕵️‍♂️ to Development 🧑‍💻👩‍💻 in MEmilio: Agent-Based-Model Development May 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
class::bug Bugs found in the software class::improvement Cleanup that doesn't affect functionality class::performance Performance related issues loc::backend This issue concerns the C++ backend implementation. model::abm This issue concerns any kind of agent-based model. prio::moderate The priority of this task is moderate.
Projects
Status: Development 🧑‍💻👩‍💻
Development

Successfully merging a pull request may close this issue.

1 participant