ckchmod / rbn-matlab

Random Boolean Networks
0 stars 1 forks source link

Save seeds (small) #3

Closed darthbeeblebrox closed 7 years ago

darthbeeblebrox commented 7 years ago

We really should save the seeds of everything we produce for reproducibility.

ckchmod commented 7 years ago

Why is this necessary? Every simulation of Radom Boolean Network should be random. And if you are inputting your own initial states, truth tables, and varFs, we don't use the random function at all in the program.

On Thursday, December 1, 2016, darthbeeblebrox notifications@github.com wrote:

We really should save the seeds of everything we produce for reproducibility.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/shinwookang/rbn-matlab/issues/3, or mute the thread https://github.com/notifications/unsubscribe-auth/AFItX1c1Ine7uo7VZ7G5Ptp4htG_KUgrks5rD1MbgaJpZM4LCAFP .

-- Best wishes, Chris Kang

darthbeeblebrox commented 7 years ago

Aren't we going to be randomizing the truth tables and internal connectivity? I understand if we aren't going to randomize the initial conditions much, but we might, yeah?

And even if we don't use them at all, as I understand it it's good practice to be able to exactly reproduce any result.

ckchmod commented 7 years ago

When we repeat experiments with set initial states, we don't randomize any initial states or truth tables or varF's. We just take what we have, and just run the simulation.

I'm actually uncomfortable with the idea of using non-random seeds in the long-term, but we can think more about it.

darthbeeblebrox commented 7 years ago

Hmm, aren't we trying to automate the data taking and varF generation bit? Isn't the "what we have" part going to be generated randomly the first time? Then it would be awesome to not have to carry around these big matrices every time we want to rerun or check something, but just a seed.

I'm totally fine with having a random seed (e.g. from the 'shuffle' option), but I feel like we really need to save it.

Anyway, I'll just add a quick thing that saves the seed (not hardcoded) as part of the object without changing anything else

ckchmod commented 7 years ago

That works for me. Maybe we can have a default set as a seed 42, and if we choose to use shuffle seed, then, we add it as an object property (when you call the boolGrid class).

ghost commented 7 years ago

I found that I was able to reproduce the exact same result if I used the same initial state, truth table and varF (testing this with the hamming distance of final states) once we fixed the inCell/outCell issue.