sasa issueshttps://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/-/issues2019-07-19T13:35:41+02:00https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/-/issues/15Make the diameter() return None when the graph is not connected2019-07-19T13:35:41+02:00Gwennan EliezerMake the diameter() return None when the graph is not connectedWhen a graph is not connected, its diameter doesn't make much sense. Although, when the diameter function is used on a non-connected graph, it returns a value. We should change `diameter ()` (in register.ml), so that it checks if the graph is connected before using the diameter function. If the graph is not connected, it should return `None`, and if the graph is connected, it should return `Some d` (with d being the diameter).When a graph is not connected, its diameter doesn't make much sense. Although, when the diameter function is used on a non-connected graph, it returns a value. We should change `diameter ()` (in register.ml), so that it checks if the graph is connected before using the diameter function. If the graph is not connected, it should return `None`, and if the graph is connected, it should return `Some d` (with d being the diameter).https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/-/issues/14Change the graph created by "gg BA" on the m0 first nodes.2019-07-12T09:37:59+02:00Gwennan EliezerChange the graph created by "gg BA" on the m0 first nodes.In the [Barabási-Albert model](https://en.wikipedia.org/wiki/Barab%C3%A1si%E2%80%93Albert_model), we need a arbitrary graph of m0 nodes, to start with, and the only constraint is that each node has an edge (i.e. link to a neighbor). For the moment, in the graph generated by using `gg BA ...`, the base graph is a star of m+1 nodes.
The goal is to change this base graph, allowing the user to choose the graph they want, and to set the base graph to a clique by default.
Stephan Devismes suggested to use the following syntax to allow the user to choose the graph they want :
`m0:(a1,a2);(b1,b2);(c1,c2)...`
with `m0` being the number of nodes, and `(a1,a2)` meaning there's a link between the node of index `a1` and the one of index `a2`In the [Barabási-Albert model](https://en.wikipedia.org/wiki/Barab%C3%A1si%E2%80%93Albert_model), we need a arbitrary graph of m0 nodes, to start with, and the only constraint is that each node has an edge (i.e. link to a neighbor). For the moment, in the graph generated by using `gg BA ...`, the base graph is a star of m+1 nodes.
The goal is to change this base graph, allowing the user to choose the graph they want, and to set the base graph to a clique by default.
Stephan Devismes suggested to use the following syntax to allow the user to choose the graph they want :
`m0:(a1,a2);(b1,b2);(c1,c2)...`
with `m0` being the number of nodes, and `(a1,a2)` meaning there's a link between the node of index `a1` and the one of index `a2`https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/-/issues/6Add options to prevent algo to access to forbidden information2019-05-19T21:56:38+02:00erwanerwan.jahier@univ-grenoble-alpes.frAdd options to prevent algo to access to forbidden informationFor instance, some algo should work without being allowed to access to:
- the identity of the neighbor (cf the `pid` field of `Algo.neighbor` vars)
- the possibility for a neighbor to access to the channel number of a process (the `reply` field of `Algo.neighbor` vars)For instance, some algo should work without being allowed to access to:
- the identity of the neighbor (cf the `pid` field of `Algo.neighbor` vars)
- the possibility for a neighbor to access to the channel number of a process (the `reply` field of `Algo.neighbor` vars)https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/-/issues/5Allow the simulation to have inputs2019-07-03T11:38:09+02:00erwanerwan.jahier@univ-grenoble-alpes.frAllow the simulation to have inputsRequire to add a(n optional) `Algo.reg_inputs` function which would be similar `reg_vars`.
Then of course one could use Lutin to provide sasa such inputsRequire to add a(n optional) `Algo.reg_inputs` function which would be similar `reg_vars`.
Then of course one could use Lutin to provide sasa such inputshttps://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/-/issues/2The generated synchronous Lutin demon is wrong2019-07-03T10:40:15+02:00erwanerwan.jahier@univ-grenoble-alpes.frThe generated synchronous Lutin demon is wrongIndeed, sasa -gld generates something like that
```lutin
loop
(Enab_p1_a = p1_a) and (Enab_p1_b = p1_b) and (Enab_p1_c = p1_c) and
(Enab_p2_a = p2_a) and (Enab_p2_b = p2_b) and (Enab_p2_c = p2_c) and
(Enab_p3_a = p3_a) and (Enab_p3_b = p3_b) and (Enab_p3_c = p3_c) and
(Enab_p4_a = p4_a) and (Enab_p4_b = p4_b) and (Enab_p4_c = p4_c)
```
whereas exactly one rule should be activated an the same step in the same algo
```lutin
loop
(xor(Enab_p1_a = p1_a, Enab_p1_b = p1_b, Enab_p1_c = p1_c)) and
(xor(Enab_p2_a = p2_a, Enab_p2_b = p2_b, Enab_p2_c = p2_c)) and
(xor(Enab_p3_a = p3_a, Enab_p3_b = p3_b, Enab_p3_c = p3_c)) and
(xor(Enab_p4_a = p4_a, Enab_p4_b = p4_b, Enab_p4_c = p4_c))
```Indeed, sasa -gld generates something like that
```lutin
loop
(Enab_p1_a = p1_a) and (Enab_p1_b = p1_b) and (Enab_p1_c = p1_c) and
(Enab_p2_a = p2_a) and (Enab_p2_b = p2_b) and (Enab_p2_c = p2_c) and
(Enab_p3_a = p3_a) and (Enab_p3_b = p3_b) and (Enab_p3_c = p3_c) and
(Enab_p4_a = p4_a) and (Enab_p4_b = p4_b) and (Enab_p4_c = p4_c)
```
whereas exactly one rule should be activated an the same step in the same algo
```lutin
loop
(xor(Enab_p1_a = p1_a, Enab_p1_b = p1_b, Enab_p1_c = p1_c)) and
(xor(Enab_p2_a = p2_a, Enab_p2_b = p2_b, Enab_p2_c = p2_c)) and
(xor(Enab_p3_a = p3_a, Enab_p3_b = p3_b, Enab_p3_c = p3_c)) and
(xor(Enab_p4_a = p4_a, Enab_p4_b = p4_b, Enab_p4_c = p4_c))
```https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/-/issues/1Generate a Lutin node implementing a central demon2019-06-20T13:59:17+02:00erwanerwan.jahier@univ-grenoble-alpes.frGenerate a Lutin node implementing a central demon