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

Asymmetric LinkingRules #793

Open
aPlacuzzi opened this issue Apr 28, 2021 · 1 comment
Open

Asymmetric LinkingRules #793

aPlacuzzi opened this issue Apr 28, 2021 · 1 comment

Comments

@aPlacuzzi
Copy link
Contributor

When a node is removed, all the nodes in its neighbourhood are notified of this event and remove it from their neighbourhood.
With an asymmetric linkingRule policy a node (N) can have the node to remove (NR) in its neighbourhood, but N could not be in the neighbourhood of NR. So, N continues to believe that NR is its neighbour.
If this happens and N changes position, the neighbourhoods are updated, and also the NR neighbourhood is updated, but
it doesn't exist anymore and AbstractEnironment.getNeighborhood throw the IllegalArgumentException.

@DanySK
Copy link
Member

DanySK commented Apr 28, 2021

The problem here is currently unavoidable: Alchemist requires LinkingRules to be bi-directional. I'm converting this issue to a call for asymmetric neighborhoods: fixing the issue reported would break the simulator, as the engine and its dependency management system assumes an undirected graph.

@DanySK DanySK changed the title Environment.removeNode with asymmetric linkingRule policy Asymmetric LinkingRules Apr 28, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants