hearsay

The purpose of this project is to compute simulations of the causal contacts between emiters in the Galaxy.

Project by Marcelo Lares (CONICET, UNC, Argentina)

A python virtual environment is suggested to work with this project. Requirements are listed in the project home directory file: requirements.txt.

Science case

Proposal

The abundance of intelligent civilisations in the Galaxy is a

longstanding question related to the expected probability of success for SETI programs.  Traditional approaches to quantify this problem use either frequentist inferences or numerical simulations. The key challenges in both cases are the proper treatment of the time variable and the large uncertainties on the intervening factors. Here we present a three-parametric statistical model of the network of causally connected locations in a simplified Galaxy, with the restriction of a maximum distance range for any signal. We implement Monte Carlo simulations of this model to explore the parameter space and analyse the probabilities of causal contacts for random locations in the Galaxy.

We find

that, given the enormous distances involved, causal contacts between civilisations would be very rare. The odds to make a contact in a few years of monitoring are low for most models, except for those of a galaxy densely populated with ancient civilisations. The probability of causal contacts increases with the lifetime of civilisations more significantly than with the number of active civilisations. We show that the maximum probability of making a contact occurs when a civilization discovers the required communication technology.

Methods and working hypothesis

Simulations are suitable tools to analyze systems that evolve with time and involve randomness.

An advantage of simulations compared to theoretical approaches, is that the former usually require less assumptions and simplifications, and can be applied to systems where a theoretical model can not be found.

In particular, many complex stochastic processes that can be described by the evolution of the state of a system, can be efficiently modeled with the discrete–event (hereafter, DE) simulation approach.

A system described with the DE paradigm is characterized by a set of actors and events, where actors interact causally through a series of events on a timeline and process these events in chronological order

_images/F_scheme.png

Space-time diagrams showing the causal contact connections.

_images/F_messages.png

All possible cases for the generation of events.

References

Abstract

The abundance of intelligent civilizations in the Galaxy is a longstanding question, often conceptualized as the problem of the lack of received communication. Estimates of the number of civilizations are generally guided by the Drake equation, despite the large uncertainties in its factors and its lack of a temporal nature. Alternative approaches use detailed numerical simulations of the galaxy and recipes for the stars and planets formation rates and for the origin of life, and rely on uncertain parameters. We present a statistical model for the abundance and duration of civilizations implemented through Monte Carlo simulations. We explore the hypothesis space of the model by a suite of simulations to analyze the emergence of communicating nodes and their causal connections. We based this on minimal assumptions and three free parameters, with focus on the proposed statistical properties of empirical models. Our analysis of the dependence of the rate of causal contacts on the mean number of civilizations, the mean lifespan distribution and the maximum distance a civilization can send signals, is considered to discuss the spatial and temporal structure of a populated galaxy within several scenarios. We find that, given the enormous distances involved, causal contacts between civilizations are very rare. The odds to make a contact in a few years of monitoring are low for most models, except for those of a galaxy densely populated with long-lived civilizations. The probability of causal contacts increases with the lifetime of civilizations much more significantly than with the number of active civilizations for a time window. We show that the maximum probability of making a contact occurs when a civilization gains the required communication technology.

Context

[5] [6] [7] [8] [11] [81] [82] [13] [16] [17] [18] [24] [23] [22] [20] [21] [25] [19] [26] [28] [29] [31] [32] [33] [35] [36] [37] [39] [40] [41] [43] [44] [45] [47] [48] [49] [56] [52] [51] [54] [53] [55] [50] [57] [58] [59] [60] [61] [62] [65] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [46] [42] [64] [63] [1] [4] [30] [38] [10] [12] [66] [34] [3] [9] [15] [2] [80] [14] [27]

1

Luis A. Anchordoqui and Susanna M. Weber. Upper limit on the fraction of alien civilizations that develop communication technology. arXiv e-prints, aug 2019. URL: http://arxiv.org/abs/1908.01335 https://ui.adsabs.harvard.edu/abs/2019arXiv190801335A, arXiv:1908.01335.

2

James Annis. An astrophysical explanation for the “GREAT SILENCE”. JBIS - Journal of the British Interplanetary Society, 52(1):19–22, jan 1999. URL: http://arxiv.org/abs/astro-ph/9901322, arXiv:9901322.

3

Stuart Armstrong and Anders Sandberg. Eternity in six hours: Intergalactic spreading of intelligent life and sharpening the Fermi paradox. Acta Astronautica, 89:1–13, aug 2013. URL: https://linkinghub.elsevier.com/retrieve/pii/S0094576513001148, doi:10.1016/j.actaastro.2013.04.002.

4

A. Balb. The spatiotemporal aspects of SETI. Mem. della Soc. Astron. Ital., 89:425, 2018. URL: https://ui.adsabs.harvard.edu/abs/2018MmSAI..89..425B/abstract.

5

Amedeo Balbi. The Impact of the Temporal Distribution of Communicating Civilizations on Their Detectability. Astrobiology, 18(1):54–58, aug 2018. URL: http://arxiv.org/abs/1708.07433 http://dx.doi.org/10.1089/ast.2017.1652, arXiv:1708.07433, doi:10.1089/ast.2017.1652.

6

A. L. Barabási. Scale-free networks: A decade and beyond. Science (80-. )., 325(5939):412–413, 2009. URL: https://science.sciencemag.org/content/325/5939/412, doi:10.1126/science.1173299.

7

Martin T. Barlow. Galactic exploration by directed self-replicating probes, and its implications for the Fermi paradox. Int. J. Astrobiol., 12(1):63–68, jun 2013. URL: http://arxiv.org/abs/1206.0953 http://dx.doi.org/10.1017/S1473550412000419, arXiv:1206.0953, doi:10.1017/S1473550412000419.

8

Frederick Bloetscher. Using predictive Bayesian Monte Carlo- Markov Chain methods to provide a probablistic solution for the Drake equation. Acta Astronaut., 155:118–130, feb 2019. URL: https://linkinghub.elsevier.com/retrieve/pii/S0094576518314000, doi:10.1016/j.actaastro.2018.11.033.

9

Ermanno F. Borra. Searching for extraterrestrial intelligence signals in astronomical spectra, including existing data. Astronomical Journal, oct 2012. URL: http://arxiv.org/abs/1210.5986 http://dx.doi.org/10.1088/0004-6256/144/6/181, arXiv:1210.5986, doi:10.1088/0004-6256/144/6/181.

10

G. Brin. The great silence: the controversy concerning extraterrestrial intelligent life. Quarterly Journal of the Royal Astronomical Society, 24(3):283–309, 1983. URL: https://ui.adsabs.harvard.edu/abs/1983QJRAS..24..283B/abstract.

11

Mark J. Burchell. W(h)ither the Drake equation? Int. J. Astrobiol., 5(3):243–250, jul 2006. URL: https://www.cambridge.org/core/product/identifier/S1473550406003107/type/journal{\_}article, doi:10.1017/S1473550406003107.

12

Jonathan Carroll-Nellenback, Adam Frank, Jason Wright, and Caleb Scharf. The Fermi Paradox and the Aurora Effect: Exo-civilization Settlement, Expansion, and Steady States. The Astronomical Journal, 158(3):117, aug 2019. arXiv:1902.04450, doi:10.3847/1538-3881/ab31a3.

13

Pratika Dayal, Martin Ward, and Charles Cockell. The habitability of the Universe through 13 billion years of cosmic time. arXiv e-prints, jun 2016. URL: http://arxiv.org/abs/1606.09224 https://ui.adsabs.harvard.edu/abs/2016arXiv160609224D, arXiv:1606.09224.

14

Vladimir Došović, Branislav Vukotić, and Milan M. Ćirković. Advanced aspects of Galactic habitability. Astronomy and Astrophysics, 2019. arXiv:1904.01062, doi:10.1051/0004-6361/201834588.

15

William H. Edmondson and Ian R. Stevens. The utilization of pulsars as SETI beacons. International Journal of Astrobiology, 2(4):231–271, 2003. doi:10.1017/S1473550403001666.

16

J. Emilio Enriquez, Andrew Siemion, Griffin Foster, Vishal Gajjar, Greg Hellbourg, Jack Hickish, Howard Isaacson, Danny C. Price, Steve Croft, David DeBoer, Matt Lebofsky, David MacMahon, and Dan Werthimer. The Breakthrough Listen Search for Intelligent Life: 1.1-1.9 GHz observations of 692 Nearby Stars. Astrophys. J., 849(2):104, sep 2017. URL: http://arxiv.org/abs/1709.03491 http://dx.doi.org/10.3847/1538-4357/aa8d1b, arXiv:1709.03491, doi:10.3847/1538-4357/aa8d1b.

17

Martyn J. Fogg. Temporal aspects of the interaction among the first galactic civilizations: The “interdict hypothesis”. Icarus, 69(2):370–384, feb 1987. URL: https://www.sciencedirect.com/science/article/pii/0019103587901126, doi:10.1016/0019-1035(87)90112-6.

18

D. H. Forgan. A numerical testbed for hypotheses of extraterrestrial life and intelligence. Int. J. Astrobiol., 8(2):121–131, oct 2009. URL: http://arxiv.org/abs/0810.2222, arXiv:0810.2222, doi:10.1017/S1473550408004321.

19

Duncan Forgan, Pratika Dayal, Charles Cockell, and Noam Libeskind. Evaluating galactic habitability using high-resolution cosmological simulations of galaxy formation. Int. J. Astrobiol., 16(1):60–73, nov 2016. URL: http://arxiv.org/abs/1511.01786, arXiv:1511.01786, doi:10.1017/S1473550415000518.

20

Duncan H. Forgan. Spatio-temporal constraints on the zoo hypothesis, and the breakdown of total hegemony. Int. J. Astrobiol., 10(4):341–347, may 2011. URL: http://arxiv.org/abs/1105.2497 http://dx.doi.org/10.1017/S147355041100019X, arXiv:1105.2497, doi:10.1017/S147355041100019X.

21

Duncan H. Forgan. On the possibility of detecting class a stellar engines using exoplanet transit curves. JBIS - J. Br. Interplanet. Soc., 66(5-6):144–154, jun 2013. URL: http://arxiv.org/abs/1306.1672, arXiv:1306.1672.

22

Duncan H. Forgan. Can Collimated Extraterrestrial Signals be Intercepted? JBIS - J. Br. Interplanet. Soc., 67(6):232–236, oct 2014. URL: http://arxiv.org/abs/1410.7796, arXiv:1410.7796.

23

Duncan H. Forgan. The Galactic Club or Galactic Cliques? Exploring the limits of interstellar hegemony and the Zoo Hypothesis. Int. J. Astrobiol., 16(4):349–354, aug 2017. URL: http://arxiv.org/abs/1608.08770 http://dx.doi.org/10.1017/S1473550416000392, arXiv:1608.08770, doi:10.1017/S1473550416000392.

24

Duncan H. Forgan. Exoplanet transits as the foundation of an interstellar communications network. Int. J. Astrobiol., 18(3):189–198, jul 2019. URL: http://arxiv.org/abs/1707.03730 https://www.cambridge.org/core/product/identifier/S1473550417000283/type/journal{\_}article, arXiv:1707.03730, doi:10.1017/S1473550417000283.

25

Duncan H. Forgan and Ken Rice. Numerical testing of the Rare Earth Hypothesis using Monte Carlo realization techniques. Int. J. Astrobiol., 9(2):73–80, jan 2010. URL: http://arxiv.org/abs/1001.1680, arXiv:1001.1680, doi:10.1017/S1473550410000030.

26

José G. Funes, Lucio Florio, Marcelo Lares, and Mariano Asla. Searching for Spiritual Signatures in SETI Research. Theol. Sci., 0(0):1–9, 2019. URL: https://doi.org/10.1080/14746700.2019.1632550, doi:10.1080/14746700.2019.1632550.

27

E. Galera, G. R. Galanti, and O. Kinouchi. Invasion percolation solves Fermi Paradox but challenges SETI projects. International Journal of Astrobiology, 18(4):316–322, aug 2019. doi:10.1017/S1473550418000101.

28

Nicolas Glade, Pascal Ballet, and Olivier Bastien. A stochastic process approach of the drake equation parameters. Int. J. Astrobiol., 11(2):103–108, dec 2012. URL: http://arxiv.org/abs/1112.1506 http://dx.doi.org/10.1017/S1473550411000413 https://www.cambridge.org/core/product/identifier/S1473550411000413/type/journal{\_}article, arXiv:1112.1506, doi:10.1017/S1473550411000413.

29

M. Gleiser. Drake equation for the multiverse: From the string landscape to complex life. Int. J. Mod. Phys. D, 19(8-10):1299–1308, feb 2010. URL: http://arxiv.org/abs/1002.1651 http://dx.doi.org/10.1142/S0218271810017949, arXiv:1002.1651, doi:10.1142/S0218271810017949.

30

R. Gobat and S. E. Hong. Evolution of galaxy habitability. Astron. Astrophys., may 2016. URL: http://arxiv.org/abs/1605.06627 http://dx.doi.org/10.1051/0004-6361/201628834, arXiv:1605.06627, doi:10.1051/0004-6361/201628834.

31

Guillermo Gonzalez. Habitable Zones in the Universe. Orig. Life Evol. Biosph., 35(6):555–606, dec 2005. URL: http://arxiv.org/abs/astro-ph/0503298 http://dx.doi.org/10.1007/s11084-005-5010-8 http://link.springer.com/10.1007/s11084-005-5010-8, arXiv:0503298, doi:10.1007/s11084-005-5010-8.

32

Guillermo Gonzalez, Donald Brownlee, and Peter Ward. The Galactic Habitable Zone: Galactic Chemical Evolution. Icarus, 152(1):185–200, jul 2001. doi:10.1006/icar.2001.6617.

33

Claudio Grimaldi. Signal coverage approach to the detection probability of hypothetical extraterrestrial emitters in the Milky Way. Sci. Rep., 7(1):46273, apr 2017. URL: http://www.nature.com/articles/srep46273 http://arxiv.org/abs/1704.04028 http://dx.doi.org/10.1038/srep46273, arXiv:1704.04028, doi:10.1038/srep46273.

34

Claudio Grimaldi, Geoffrey W. Marcy, Nathaniel K. Tellis, and Frank Drake. Area coverage of expanding E.T. signals in the galaxy: SETI and Drake’s N. Publications of the Astronomical Society of the Pacific, may 2018. arXiv:1802.09399, doi:10.1088/1538-3873/aaac6a.

35

Jacob Haqq-Misra. Does the evolution of complex life depend on the stellar spectral energy distribution? arXiv e-prints, may 2019. URL: http://arxiv.org/abs/1905.07343 https://ui.adsabs.harvard.edu/abs/2019arXiv190507343H http://dx.doi.org/10.1089/ast.2018.1946, arXiv:1905.07343, doi:10.1089/ast.2018.1946.

36

Jacob Haqq-Misra and Ravi K. Kopparapu. The Drake Equation as a Function of Spectral Type and Time. Habitability of the Universe Before Earth, pages 307–319, may 2018. URL: http://arxiv.org/abs/1705.07816, arXiv:1705.07816, doi:10.1016/b978-0-12-811940-2.00013-7.

37

G. R. Harp, R. F. Ackermann, Alfredo Astorga, Jack Arbunich, Jose Barrios, Kristin Hightower, Seth Meitzner, W. C. Barott, Michael C. Nolan, D. G. Messerschmitt, Douglas A. Vakoch, Seth Shostak, and J. C. Tarter. The Application of Autocorrelation SETI Search Techniques in an ATA Survey. Astrophys. J., 869(1):66, dec 2018. URL: http://arxiv.org/abs/1506.00055 http://dx.doi.org/10.3847/1538-4357/aaeb98 http://stacks.iop.org/0004-637X/869/i=1/a=66?key=crossref.1f6820ec68000694fb8bcd53c2b566b2, arXiv:1506.00055, doi:10.3847/1538-4357/aaeb98.

38

Michael H. Hart. An Explanation for the Absence of Extraterrestrials on Earth. Quarterly Journal of the Royal Astronomical Society, 16:128, 1975. URL: https://ui.adsabs.harvard.edu/abs/1975QJRAS..16..128H/abstract, doi:10.1017/cbo9780511564970.003.

39

Natalie Hinkel, Hilairy Hartnett, Carey Lisse, and Patrick Young. An Interdisciplinary Perspective on Elements in Astrobiology: From Stars to Planets to Life. Bull. Am. Astron. Soc., 51(3):497, apr 2019. URL: http://arxiv.org/abs/1904.01092 https://ui.adsabs.harvard.edu/abs/2019BAAS…51c.497H, arXiv:1904.01092.

40

Michael Hippke. Interstellar communication. IV. Benchmarking information carriers. arXiv e-prints, nov 2017. URL: http://arxiv.org/abs/1711.07962, arXiv:1711.07962.

41

Marko Horvat. Calculating the probability of detecting radio signals from alien civilizations. Int. J. Astrobiol., 5(2):143–149, jun 2006. URL: http://arxiv.org/abs/0707.0011 http://dx.doi.org/10.1017/S1473550406003004, arXiv:0707.0011, doi:10.1017/S1473550406003004.

42

Marko Horvat, Anamari Nakić, and Ivana Otočan. Impact of technological synchronicity on prospects for CETI. Int. J. Astrobiol., 11(1):51–59, dec 2011. URL: http://arxiv.org/abs/1112.0423 http://dx.doi.org/10.1017/S1473550411000322 https://www.cambridge.org/core/product/identifier/S1473550411000322/type/journal{\_}article, arXiv:1112.0423, doi:10.1017/S1473550411000322.

43

H. Jeong, B. Tombor, R. Albert, Z. N. Oltvai, and A. -L. Barabasi. The large-scale organization of metabolic networks. Nature, 407(6804):651–654, oct 2000. URL: http://www.nature.com/articles/35036627 http://arxiv.org/abs/cond-mat/0010278 http://dx.doi.org/10.1038/35036627, arXiv:0010278, doi:10.1038/35036627.

44

Michael Lampton. Information-driven societies and Fermi’s paradox. Int. J. Astrobiol., 12(4):312–313, oct 2013. URL: https://www.cambridge.org/core/product/identifier/S1473550413000153/type/journal{\_}article, doi:10.1017/S1473550413000153.

45

Charles H. Lineweaver, Yeshe Fenner, and Brad K. Gibson. The Galactic Habitable Zone and the Age Distribution of Complex Life in the Milky Way. Science (80-. )., 303(5654):59–62, jan 2004. URL: http://arxiv.org/abs/astro-ph/0401024 http://dx.doi.org/10.1126/science.1092322, arXiv:0401024, doi:10.1126/science.1092322.

46

Manasvi Lingam and Abraham Loeb. Relative Likelihood of Success in the Search for Primitive versus Intelligent Extraterrestrial Life. Astrobiology, 19(1):28–39, jan 2018. URL: http://arxiv.org/abs/1807.08879 http://dx.doi.org/10.1089/ast.2018.1936 https://www.liebertpub.com/doi/10.1089/ast.2018.1936, arXiv:1807.08879, doi:10.1089/ast.2018.1936.

47

Abraham Loeb, Rafael A. Batista, and David Sloan. Relative likelihood for life as a function of cosmic time. J. Cosmol. Astropart. Phys., 2016(8):040–040, aug 2016. URL: http://arxiv.org/abs/1606.08448 http://dx.doi.org/10.1088/1475-7516/2016/08/040 http://stacks.iop.org/1475-7516/2016/i=08/a=040?key=crossref.f4b14eb407d6b005f3cbb4235b2c77e0, arXiv:1606.08448, doi:10.1088/1475-7516/2016/08/040.

48

Abraham Loeb and Matias Zaldarriaga. Eavesdropping on radio broadcasts from galactic civilizations with upcoming observatories for redshifted 21 cm radiation. J. Cosmol. Astropart. Phys., oct 2007. URL: http://arxiv.org/abs/astro-ph/0610377 http://dx.doi.org/10.1088/1475-7516/2007/01/020, arXiv:0610377, doi:10.1088/1475-7516/2007/01/020.

49

Claudio Maccone. The KLT (Karhunen–Loève Transform) to extend SETI searches to broad-band and extremely feeble signals. Acta Astronaut., 67(11-12):1427–1439, dec 2010. URL: https://linkinghub.elsevier.com/retrieve/pii/S0094576510001487, doi:10.1016/j.actaastro.2010.05.002.

50

Claudio Maccone. The Statistical Drake Equation. Acta Astronaut., 67(11-12):1366–1383, dec 2010. URL: https://linkinghub.elsevier.com/retrieve/pii/S0094576510001499, doi:10.1016/j.actaastro.2010.05.003.

51

Claudio Maccone. A Mathematical Model for Evolution and SETI. Orig. Life Evol. Biosph., 41(6):609–619, dec 2011. URL: http://link.springer.com/10.1007/s11084-011-9260-3, doi:10.1007/s11084-011-9260-3.

52

Claudio MacCone. SETI and SEH (Statistical Equation for Habitables). Acta Astronaut., 68(1-2):63–75, jan 2011. URL: https://www.sciencedirect.com/science/article/pii/S0094576510002018, doi:10.1016/j.actaastro.2010.06.010.

53

Claudio MacCone. SETI, evolution and human history merged into a mathematical model. Int. J. Astrobiol., 12(3):218–245, jul 2013. URL: https://www.cambridge.org/core/product/identifier/S1473550413000086/type/journal{\_}article, doi:10.1017/S1473550413000086.

54

Claudio Maccone. Evolution and mass extinctions as lognormal stochastic processes. Int. J. Astrobiol., 13(4):290–309, oct 2014. URL: https://www.cambridge.org/core/product/identifier/S147355041400010X/type/journal{\_}article, doi:10.1017/S147355041400010X.

55

Claudio Maccone. Lognormals for SETI, Evolution and mass extinctions. Acta Astronaut., 105(2):538–546, dec 2014. URL: https://linkinghub.elsevier.com/retrieve/pii/S0094576514002458 http://adsabs.harvard.edu/abs/2014AcAau.105..538M, doi:10.1016/j.actaastro.2014.07.002.

56

Claudio Maccone. Statistical Drake-Seager Equation for exoplanet and SETI searches. Acta Astronaut., 115:277–285, 2015. doi:10.1016/j.actaastro.2015.05.005.

57

Héctor García Martín and Nigel Goldenfeld. On the origin and robustness of power-law species-area relationships in ecology. Proc. Natl. Acad. Sci. U. S. A., 103(27):10310–10315, 2006. URL: https://www.pnas.org/content/103/27/10310, doi:10.1073/pnas.0510605103.

58

Michael Mitzenmacher. A brief history of generative models for power law and lognormal distributions. Internet Math., 1(2):226–251, 2004. URL: https://doi.org/10.1080/15427951.2004.10129088, doi:10.1080/15427951.2004.10129088.

59

Ian S. Morrison and Michael G. Gowanlock. Extending Galactic Habitable Zone Modeling to Include the Emergence of Intelligent Life. Astrobiology, 15(8):683–696, aug 2015. URL: http://www.liebertpub.com/doi/10.1089/ast.2014.1192 https://ui.adsabs.harvard.edu/abs/2014ebi..conf..5.4M/abstract, doi:10.1089/ast.2014.1192.

60

Giuseppe Murante, Pierluigi Monaco, Stefano Borgani, Luca Tornatore, Klaus Dolag, and David Goz. Simulating realistic disc galaxies with a novel sub-resolution ISM model. Mon. Not. R. Astron. Soc., 447(1):178–201, feb 2015. URL: http://academic.oup.com/mnras/article/447/1/178/988838/Simulating-realistic-disc-galaxies-with-a-novel, doi:10.1093/mnras/stu2400.

61

MEJ Newman. Power laws, Pareto distributions and Zipf’s law. Contemp. Phys., 46(5):323–351, sep 2005. URL: https://doi.org/10.1080/00107510500052444 http://www.tandfonline.com/doi/abs/10.1080/00107510500052444, doi:10.1080/00107510500052444.

62

William I. Newman and Carl Sagan. Galactic civilizations: Population dynamics and interstellar diffusion. Icarus, 46(3):293–327, jun 1981. URL: https://www.sciencedirect.com/science/article/pii/0019103581901354, doi:10.1016/0019-1035(81)90135-4.

63

Ted Peters. Outer space and cyber space: meeting ET in the cloud. Int. J. Astrobiol., 17(4):282–286, oct 2018. URL: https://www.cambridge.org/core/product/identifier/S1473550416000318/type/journal{\_}article http://adsabs.harvard.edu/abs/2018IJAsB..17..282P, doi:10.1017/S1473550416000318.

64

Nikos Prantzos. A joint analysis of the Drake equation and the Fermi paradox. Int. J. Astrobiol., 12(3):246–253, jan 2013. URL: http://arxiv.org/abs/1301.6411 http://dx.doi.org/10.1017/S1473550413000037, arXiv:1301.6411, doi:10.1017/S1473550413000037.

65

Sohrab Rahvar. Cosmic initial conditions for a habitable universe. Mon. Not. R. Astron. Soc., 470(3):3095–3102, aug 2017. URL: http://arxiv.org/abs/1608.00967 http://dx.doi.org/10.1093/mnras/stx1448, arXiv:1608.00967, doi:10.1093/mnras/stx1448.

66

Rodrigo Ramirez, Marco A. Gómez-Muñoz, Roberto Vázquez, and Patricia G. Núñez. New numerical determination of habitability in the Galaxy: the SETI connection. International Journal of Astrobiology, pages 1–10, mar 2017. doi:10.1017/S1473550417000027.

67

Sara Seager. The search for habitable planets with biosignature gases framed by a ‘Biosignature Drake Equation’. Int. J. Astrobiol., 17(4):294–302, oct 2018. URL: https://www.cambridge.org/core/product/identifier/S1473550417000052/type/journal{\_}article, doi:10.1017/S1473550417000052.

68

Seth Shostak. What ET will look like and why should we care. Acta Astronaut., 67(9-10):1025–1029, nov 2010. URL: https://linkinghub.elsevier.com/retrieve/pii/S0094576510002195, doi:10.1016/j.actaastro.2010.06.028.

69

M. V. Simkin and V. P. Roychowdhury. Theory of Aces: Fame by Chance or Merit? J. Math. Sociol., 30(1):33–42, jan 2006. URL: https://doi.org/10.1080/00222500500333258 http://www.tandfonline.com/doi/abs/10.1080/00222500500333258, doi:10.1080/00222500500333258.

70

Reginald D. Smith. Broadcasting but not receiving: Density dependence considerations for SETI signals. Int. J. Astrobiol., 8(2):101–105, jan 2009. URL: https://www.cambridge.org/core/product/identifier/S1473550409990097/type/journal{\_}article http://arxiv.org/abs/0901.3863 http://dx.doi.org/10.1017/S1473550409990097, arXiv:0901.3863, doi:10.1017/S1473550409990097.

71

Evan Solomonides, Lisa Kaltenegger, and Yervant Terzian. A Probabilistic Analysis of the Fermi Paradox. 228th AAS, San Diego, 228:1–14, jun 2016. URL: http://arxiv.org/abs/1604.07687, arXiv:1604.07687.

72

Jonathan Starling and Duncan H. Forgan. Virulence as a model for interplanetary and interstellar colonization-parasitism or mutualism? Int. J. Astrobiol., 13(1):45–52, nov 2014. URL: http://arxiv.org/abs/1311.0759 http://dx.doi.org/10.1017/S1473550413000347, arXiv:1311.0759, doi:10.1017/S1473550413000347.

73

Jill Tarter. The Search for Extraterrestrial Intelligence (SETI). Annu. Rev. Astron. Astrophys., 39(1):511–548, sep 2001. URL: http://www.annualreviews.org/doi/10.1146/annurev.astro.39.1.511, doi:10.1146/annurev.astro.39.1.511.

74

Jill Tarter, Peter Backus, Samantha Blair, Jim Cordes, Gerald Harp, Richard Conn Henry, Paul Horowitz, Andrew W Howard, Tom Kilsdonk, Eric J Korpela, Joseph Lasio, Steven Levin, G Seth Shostack, and Dan Werthimer. Advancing the Search for Extraterrestrial Intelligence. Astro2010 Astron. Astrophys. Decad. Surv. Sci. White Pap. no. 294, 2009. URL: http://adsabs.harvard.edu/abs/2009astro2010S.294T.

75

Melissa Adams VanHouten. Is there anybody out there? Lancet Gastroenterol. Hepatol., 3(6):382, jun 2018. URL: http://arxiv.org/abs/1706.01907, arXiv:1706.01907, doi:10.1016/S2468-1253(18)30137-7.

76

B. Vukotić, D. Steinhauser, G. Martinez-Aviles, M. M. Ćirković, M. Micic, and S. Schindler. ‘Grandeur in this view of life’: N -body simulation models of the Galactic habitable zone. Mon. Not. R. Astron. Soc., 459(4):3512–3524, jul 2016. URL: https://academic.oup.com/mnras/article-lookup/doi/10.1093/mnras/stw829, doi:10.1093/mnras/stw829.

77

Branislav Vukotić and Milan M. Ćirković. Astrobiological Complexity with Probabilistic Cellular Automata. Orig. Life Evol. Biosph., 42(4):347–371, jun 2012. URL: http://link.springer.com/10.1007/s11084-012-9293-2 http://arxiv.org/abs/1206.3467 http://dx.doi.org/10.1007/s11084-012-9293-2, arXiv:1206.3467, doi:10.1007/s11084-012-9293-2.

78

Clifford Walters, Raymond A. Hoover, and R.K. Kotra. Interstellar colonization: A new parameter for the Drake equation? Icarus, 41(2):193–197, feb 1980. URL: https://linkinghub.elsevier.com/retrieve/pii/0019103580900032, doi:10.1016/0019-1035(80)90003-2.

79

Jason T. Wright, Kimberly M. S. Cartier, Ming Zhao, Daniel Jontof-Hutter, and Eric B. Ford. the Ĝ Search for Extraterrestrial Civilizations With Large Energy Supplies. Iv. the Signatures and Information Content of Transiting Megastructures. Astrophys. J., 816(1):17, oct 2015. URL: http://arxiv.org/abs/1510.04606 http://dx.doi.org/10.3847/0004-637X/816/1/17, arXiv:1510.04606, doi:10.3847/0004-637x/816/1/17.

80

Jason T. Wright, Shubham Kanodia, and Emily Lubar. How Much SETI Has Been Done? Finding Needles in the n -dimensional Cosmic Haystack. The Astronomical Journal, 156(6):260, nov 2018. arXiv:1809.07252, doi:10.3847/1538-3881/aae099.

81

Milan M. Ćirković. The temporal aspect of the Drake equation and SETI. Astrobiology, 4(2):225–231, jun 2004. URL: http://www.liebertpub.com/doi/10.1089/153110704323175160 http://arxiv.org/abs/astro-ph/0306186 http://dx.doi.org/10.1089/153110704323175160 https://ui.adsabs.harvard.edu/abs/2004AsBio…4..225C/abstract, arXiv:0306186, doi:10.1089/153110704323175160.

82

Simon Conway Morris. Three explanations for extraterrestrials: sensible, unlikely, mad. Int. J. Astrobiol., 17(4):287–293, oct 2018. URL: https://www.cambridge.org/core/product/identifier/S1473550416000379/type/journal{\_}article, doi:10.1017/S1473550416000379.

API

Getting started

Hearsay for python

Hearsay has been tested for python 3.7

More testing is currently under development.

Preparing a virtual environment

It is recommended to install a virtual environment for a clean python ecosystem.

virtualenv MyVE
source MyVE/bin/activate

or

mkvirtualenv -p $(which python3)

Downloading hearsay

Hearsay is publically available from a GitHub repository. It can be downloaded with:

git clone https://github.com/mlares/hearsay.git

The code can be explored using GitHub, including development activity and documentation.

Installing hearsay

Once the virtualenvironment has been set (recommended), then install the hearsay package:

pip install -r requirements.txt

It is convenient to save the root directory of the hearsay installation. In bash, for example,

export hearsat_rootdir=”$(pwd)”

Hearsay module can be used anywhere provided the following command is executed within the environment in the directory $hearsay_rootdir:

pip install .

Testing hearsay

We first need to create an output directory, as set in the .ini file:

dir_output = ../out/

So, from a bash prompt:

mkdir $hearsay_root/out

In order to run a test experiment, go to the src directory and run:

python run_experiment.py ../set/experiment.ini

Configuration

Experiment section

In this section we must give a unique ID for an experiment. It can include numbers and characters, for example “01” or “first_experiment”

[experiment]

# experiment ID
exp_ID =  ID_001

The files resulting from the simulations will be stored in a directory with this name under the directory indicated in the dir_output varible (output section). In this case, it will create the directory ../out/ID_001 if it does not exist.

Simulation section

[simu]

# internal GHZ radius, lyr
GHZ_inner = 20000.
# external GHZ radius, lyr
GHZ_outer = 60000.

# time span to simulate
t_max = 2.e6

#tau_awakeningS
tau_a_min = 2000
tau_a_max = 80000
tau_a_nbins = 10

# tau_surviveS
tau_s_min = 2000
tau_s_max = 80000
tau_s_nbins = 10

# Separate data in directories according to D_max
D_max_min = 20000
D_max_max = 20000
D_max_nbins = 1

# Number of realizations for each simulation
Nran = 10

# Parallel run
run_parallel = Y
Njobs = 10

These variables are used to set:

  • the inner and outer radii of the Galactic Habitable Zone (GHZ_inner and GHZ_outer)

  • the maximum time span for a simulation (t_max), in years

  • the minimum and maximum values for the tau_awakening parameter, in kpc, and the number of values in that range. For examples, the values: tau_a_min = 3, tau_a_max = 8 and tau_a_nbins = 10 will generate ten values between 3 and 8 using the same criteria as numpy.linspace, i.e., tau_survive_values = numpy.linspace(tau_a_min, tau_a_max, tau_a_nbins)

  • the minimum and maximum values for the tau_survive parameter, in years, and the number of values in that range.

  • the minimum and maximum values for the D_max paramter, in kpc, and the number of values in that range.

  • A flag indicating whether the run will be made in parallel (run_parallel). The values ‘y’, ‘Y’, ‘yes’, ‘YES’, ‘true’, ‘True’, or ‘TRUE’ can be used to set a parallel run, and the values ‘n’, ‘N’, ‘no’, ‘NO’, ‘No’, False’, ‘false’, or ‘FALSE’ can be used to ser a serial run.

  • If a parallel run has been set, the parameter Njobs can be used to set the number of threads. If run_parallel has been set to False, Njobs will be ignored.

Output section

[output]

dir_output = ../out/
dir_plots = ../plt/
pars_root = params
progress_root = progress

plot_fname = plot
plot_ftype = PNG
clobber = N

These are the names of the directories for output and plots (fir_output and dir_plots, resp.). pars_root is used as the root name for the file that stores the parameters. For example, this configuration will generate a file named params.csv in the directory ../out/ID_001/.

If the sme experiment ID is used twice, it will ignore the files with the same names. The clobber variable allows to chose if these files will be overwritten (True, Yes) or not (False, No).

Verbose section

[UX]

show_progress = Y
verbose = Y
  • show_progress can be set to True/False or Y/N (similarly to the run_parallel variable), used to show a progress bar for the experiment.

  • verbose will print on STDOUT several messages indicating the steps of the simulation.

API Usage

This tools can be used as an API, from a python prompt or from a command line.

Steps:

  1. Complete the configuration of the experiment

  2. All the settings of the experimets are parsed from the configuration files using configparser.

  3. run an experiment

  4. process the experiment

  5. show results

Configuration files

All parameters for the simulation are stored in a .ini file, for example:

[experiment]

# experiment ID
exp_ID =  PHLX_02


[simu]

# internal GHZ radius, lyr
GHZ_inner = 20000.
# external GHZ radius, lyr
GHZ_outer = 60000.

# time span to simulate
t_max = 2.e6

#tau_awakeningS
tau_a_min = 2000
tau_a_max = 80000
tau_a_nbins = 10

# tau_surviveS
tau_s_min = 2000
tau_s_max = 80000
tau_s_nbins = 10

# Separate data in directories according to D_max
D_max_min = 20000
D_max_max = 20000
D_max_nbins = 1

# Number of realizations for each simulation
Nran = 10

# Parallel run
run_parallel = Y
Njobs = 10


[output]

dir_output = ../out/
dir_plots = ../plt/
pars_root = params
progress_root = progress

plot_fname = plot
plot_ftype = PNG
clobber = N

[UX]

show_progress = Y
verbose = Y

It is not possible to add, remove or change fields from this file, if so it will trigger failures in the testing process. The fields are organized in four categories:

experiment

for the experiment ID. Each time a new ID is used, it will generate a new directory in the dir_output directory.

simu

for simulation parameters

output

for the names of directories and files that store simulation results.

UX

parameters related to the user experience

An example file is provided in the set directory.

The details about the configuration parameters are given in Configuration.

Loading configuration

There are two approaches to loading the configuration parameters, that depend on how the code is run:

1. Command line call

The configiration file can be given throught the command line:

python run_experiment.py config_file.ini

In order for this to work, the script run_experiment.py must contain:

from hearsay import hearsay
from sys import argv
conf = hearsay.parser(argv)

2. Call from a python environment

When used from a python environment, it is possible to pass a filename as a string.

from hearsay import hearsay
config_file = 'config_file.ini'
conf = hearsay.parser(config_file)

If the parser method is called without arguments, it will try to load the file ../set/experiment.ini which is distributed with the package.

Command line usage

For a simple test, go to src and run:

$ python run_experiment.py ../set/experiment.ini
$ python process_experiment.py ../set/experiment.ini
$ python plot_experiment.py ../set/experiment.ini

It is important to use the same configuration file on these three steps, since parameters are used to build filenames.

If no name is given for a configuration file, it will use a dafault file in ../set/experiment.ini.

API usage

To use functionalities, import the hearsay module:

from hearsay import hearsay

First, we must parse the configuration parameters from the .ini file.

All parameters with an assigned value must be read with the configparser module. The ConfigParser class is inherited in hearsay.parser.

Variables can be accessed using the names of the sections and the names of the fields. For example, conf[‘simu’][‘t_max’].

There are several posibilities for loading the configuration parameters.

From the command line it is possible to give the name of the file containing the parameter settings:

python run_experiment.py < ../set/experiment.ini

In this case, the file must contain the following:

from sys import argv
conf = hearsay.parser(argv)

From the python interface, it is possible to give the filename as a string:

from hearsay import hearsay
conf = hearsay.parser('../set/experiment.ini')

Also, in the default case, the function hearsay.parser can be called without arguments, and the default configuration file will be loaded:

from hearsay import hearsay
conf = hearsay.parser()

After the instantiation of a parser object without arguments, the default parameters can be overwritten with the specific methods:

from hearsay import hearsay

conf = hearsay.parser()
conf.check_file('../set/experiment.ini')
conf.read_config_file()
conf.load_filenames()
conf.load_parameters()

Finally, the simulation is made with the hearsay.GalacticNetwork class, where the function hearsay.GalacticNetwork.run_experiment() makes the computations.

G = hearsay.GalacticNetwork(conf)
G.run_experiment()

This function accepts the parallel flag which indicates a parallel version of the code will run:

G.run_experiment(parallel=True)

The analysis and visualization of the results can be done as follows:

R = hearsay.results(conf)
R.load()
res = R.redux_2d()

The method hearsay.results.redux_2d computes the matrices.

A complete example of visualization is provided in the src directory.

Tutorials

Contents of objects

C3Net.params

A pandas dataframe with the columns:

  • tau_awakening

  • tau_survive

  • d_max

  • filename

C3Net.config

This is a parser object, which is part of the hearsay.hearsay.Parser method.

Contains all configuration parameters in hearsay.C3Net.config.p:

G.config.p
   Out: pars(ghz_inner=20000.0, ghz_outer=60000.0, t_max=2000000.0,
   tau_a_min=2000.0, tau_a_max=80000.0, tau_a_nbins=10,
   tau_s_min=2000.0, tau_s_max=80000.0, tau_s_nbins=10,
   d_max_min=20000.0, d_max_max=20000.0, d_max_nbins=1,
   nran=3, run_parallel=True, njobs=10, exp_id='PHLX_02',
   dir_plots='../plt/', dir_output='../out/', pars_root='params',
   plot_fname='plot', plot_ftype='PNG', fname='../plt/plot_PHLX_02PNG',
   showp=True, overwrite=False, verbose=True)

hearsay.C3Net.config.filenames:

G.config.filenames
pars(exp_id='PHLX_02', dir_plots='../plt/', dir_output='../out/',
pars_root='params', progress_root='progress', plot_fname='plot',
plot_ftype='PNG', fname='../plt/plot_PHLX_02PNG')
Output of a simulation

The output of a single simulation is a dictionary. The length of this object is the number of nodes in the simulation run. Each entry has a list which contains the node itself and the nodes that reach contact to that node.

The first entry of this list contains:

  • index of the node

  • index of the node (repeated)

  • position X

  • position Y

  • time of the A event

  • time of the D event

The next entries of the list, if any, contain the contacts.

  • index of the receiver node

  • index of the emiter node

  • position X of the emiter node

  • position Y of the emiter node

  • time of the C event for the receiver node

  • time of the B event for the receiver node

Runnig and analyzing experiments

In this section we show how to use hearsay to run experiments and analyze the results.

First, we import the required modules:

import hearsay
import pandas as pd
from matplotlib import pyplot as plt
import numpy as np

# TUTORIAL 1: experiment from ini file

Now, we use the configuration file to load an experiment setup:

conf = hearsay.parser('experiment.ini')
G = hearsay.C3Net(conf)
G.set_parameters()
net = G.run(interactive=True)
R = hearsay.results(conf)
R.load()
res = R.redux_1d()
plt.hist(res['A'])
plt.show()

# TUTORIAL 2: CORRER UNA SIMULACION

It is possible to run a limited number of parameters of the experiment, or even an entirely new parameter set. For example, if we want the parameters:

tau_awakening = 20000 tau_survive = 20000 D_max = 20000 Nran = 7

we can just update the parameters:

conf.load_config(['nran'], ['7'])
tau_awakening = 20000
tau_survive = 20000
D_max = 20000
directory = ''.join([G.config.filenames.dir_output, G.config.filenames.exp_id])
filename = ''.join([directory, 'test.pk'])
pars = [[tau_awakening, tau_survive, D_max, filename]]
df = pd.DataFrame(pars, columns=['tau_awakening', 'tau_survive',
                                 'D_max', 'filename'])
G.set_parameters(df)

And then we can analyze them using:

res = G.run(interactive=True)
G.show_single_ccns(res[0])

hearsay package

Submodules

hearsay.hearsay module

HEARSAY.

This module contains tools to compute and analyze numerical simulations of a Galaxy with constrained causally connected nodes. It simulates a 2D simplified version of a disk galaxy and perform discrete event simulations to explore three parameters: 1. the mean time for the appeareance of new nodes, 2. the mean lifetime of the nodes, and 3. the maximum reach of signals.

A simulation is a realization of the Constrained Causally Connected Network (C3Net) model. The details of this model are explained in Lares, Funes & Gramajo (under review).

Classes in this module: - Parser - C3Net - Results

Additionally, it contains the function unwrap_run which is used for parallel runs with the joblib library.

class hearsay.hearsay.C3Net(conf=None)

Bases: object

C3Net: Constrained Causally Connected Network model.

init()

creates a node

__len__()

None

__repr__()

None

__str__()

None

run()

Run a suite of simulations for the full parametet set in the configuration file.

run_suite()

Run a suite of simulations for a given parameter set.

run_suite_II()

Run a suite of simulations for a given parameter set, to be run in parallel.

run_simulation()

Run a simulation for a point in parameter space.

show_single_ccns()

Show the contents of a simulation run.

prepare_dirs(filenames)

Prepare directories for experiments from dataframes.

Takes a list of paths and filenames and check if all paths exist.

Parameters

filenames (list) – A list with all filenames

Returns

Return type

None

run(parallel=False, njobs=None, interactive=False)

Run an experiment.

An experiment requires a set of at least three parameters, which are taken from the configuration file.

Parameters
  • parallel (Boolean) – Flag to indicate if run is made using the parallelized version. Default: False.

  • njobs (int) – Number of concurrent jobs for the parallel version. If parallel is False njobs is ignored.

  • interactive (boolean) – Flag to indicate if the result of the simulation suite is returned as a variable.

Returns

res – Only returned if interactive=True. Contains the results from the simulations. The size of the list is the number of simulations in the experiment, i.e., the number of lines in self.params. Each element of the list is a dictionary containing the complete list of CCNs and their contacts.

Return type

list

See also

hearsay.results.ccn_stats()

Example

If the following experiment is set: >>> conf.load_config([‘nran’], [‘2’] >>> A = [5000, 10000, 20000] >>> S = [20000] >>> D = [20000] >>> G.set_parameters(A=A, S=S, D=D) then a total of 6 experiments will be performed. The result of this function is a list of length 6, each element containing an element that can be printed with the show_single_ccns method. See that method for more details.

run_simulation(p=None, pars=None)

Make experiment.

A single value of parameters

Parameters
  • (configuration object) (p) –

  • (list) (pars) – tau_A, tau_S and D_max

Raises

None

Returns

  • MPL (list)

  • MPL is a list of size the number of nodes in the simulation.

  • Each element of this list contains a list whose first element

  • is

    [ID of CCN,

    ID of CCN (repeated), x coordinate of the position in the Galaxy, y coordinate of the position in the Galaxy, time of the A event, time of the D event]

  • Moreover, if there are contacts with this node

    [ID of receiving node,

    ID of emiting node, x coordinate of the position in the Galaxy of emiting node, y coordinate of the position in the Galaxy of emiting node, time of the C event, time of the B event]

run_suite(interactive=False)

Make experiment.

Requires a single value of parameters. Writes output on a file

Parameters
  • (list) (params) –

  • Format, e.g. (simulation.) –

Raises

None

Returns

Return type

None

run_suite_II(njobs, interactive=False)

Run an experiment, parallel version.

An experiment requires a set of at least three parameters, which are taken from the configuration file.

Parameters
  • params (the parameters) –

  • njobs (number of jobs) –

set_parameters(spars=None, A=None, S=None, D=None, write_file=False)

Set parameters for the experiment.

If no arguments are given, the parameters are set from the ini file. :param spars (dataframe, list or string, optional): :param Parameters to set the experiment.: :param If spars is a pandas DataFrame, it must contain the keys: :param [‘tau_awakening’, ‘tau_survive’, ‘d_max’, ‘filename’].: :param If spars is a list, it must have length=4, comprisong the: :param tau_awakening, tau_survive, d_max, and filename lists.: :param If spars is a string, a file with that name will be read.: :param The file must contain the same four columns, with the names.: :param A (number or list, optional): :type A (number or list, optional): Values of the tau_awakening parameter :param S (number or list, optional): :type S (number or list, optional): Values of the tau_survive parameter :param D (number or list, optional): :type D (number or list, optional): Values of the D_max parameter :param write_file (optional): :type write_file (optional): filename to write the parameter set.

show_single_ccns(MPL=None, interactive=False)

Show simulation results.

Parameters

None

class hearsay.hearsay.Parser(argv=None, *args, **kwargs)

Bases: configparser.ConfigParser

parser class.

Manipulation of configuration parameters. This method allows to read a configuration file or to set parameters for a Constrained Causally Conected Network (C3Net) model.

check_file(sys_args='')

Parse paramenters for the simulation from a .ini file.

Parameters

(str) (filename) –

Raises

None

Returns

Return type

None

check_settings()

Check if parameters make sense.

Parameters

None

Raises

None

Returns

Return type

Exception if settings have inconsistencies.

load_config(keys=None, values=None, nran=None, *args, **kwargs)

Load parameters from config file.

Parameters

None

Raises

None

Returns

Return type

list of parameters as a named tuple

load_filenames()

Make filenames based on info in config file.

Parameters

None

Raises

None

Returns

Return type

list of filenames

read_config_file()

Parse paramenters for the simulation from a .ini file.

Parameters

None

Raises

None

Returns

Return type

None

class hearsay.hearsay.Results(G=None)

Bases: hearsay.hearsay.C3Net

results: load and visualize results from simulations and experiments.

description

ccn_stats(CCN)

Return statistics for a single causally connected network.

This corresponds to a single simulation run, that gives a list of nodes, its properties and its contacts. The properties of a node are the ID, the times of the A and D events and the postition in the (simulated) Galaxy.

Parameters

CCN (dict) – An object (as read from pickle files) that represents a network of CCNs from a single simulation run

Returns

stats – A tuple containing several statistics about the network.

Return type

tuple

Notes

The stats tuple includes parameters with counters (1, 2, 3), parameters with CCNs values (4-7) and parameters with contacts values (8-11)

  1. N : Total number of CCNs in the full period. Length=1

02. M : Total number of contacts (i.e., CCNs that are on the space-time cone of another CCN.)

03. K : Total number of CCNs that make at least one contact (i.e., CCNs that are on the space-time cone of at least another CCN.)

04. lP : Time periods for each CCN. Equivalent to the time span between the A and D events. Length=N

  1. lI : Number of contacts each CETI receives. Length=N

  2. lX : X position within the Galaxy disc. Length=N

  3. lY : Y position within the Galaxy disc. Length=N

  4. lL : Distances between contacted nodes. Length=K

  5. lH : Duration of each contact. Length=K

  6. lW : Time elapsed from awakening to contact. Length=K

11. lF : Time elapsed from awakening to the first contact. length=N

load()

Load parameter set and data.

Load all data generated from an experiment.

redux(subset=None)

Redux experiment.

Given a set of parameters, returns the global values

Parameters

subset (boolean array) – Filter to the values in self.params

Returns

  • N (list) – Total number of nodes for each simulation in self.params

  • M (list) – Total number of contacts for each simulation in self.params A contact is produced any time a node enters the light cone of another node.

  • K (list) – Total number of nodes that make at least one contact, for each simulation in self.params.

  • lP (array) – Time periods from t_A to t_D.

  • lI (array) – Number of contacts that each node receives.

  • lX (array) – X position within the Galaxy disc.

  • lY (array) – Y position within the Galaxy disc.

  • lL (array) – Distances between contacted nodes.

  • lH (array) – Duration of each contact.

  • lW (array) – Time elapsed from awakening to contact.

  • lF (array) – Time elapsed from awakening to the first contact.

redux_1d(subset=None, applyto=None)

Reddux experiment.

Compute statistics for the set of parameters limited to subset

Parameters
  • subset (logical array) – Filter for the full parameter set.

  • applyto (string) – Name of the variable to be used as X-axis

  • Results

  • -------

redux_2d(show_progress=False)

Reddux experiment to 2D matrices.

Takes all the experiments in self.params and reduces the data to matrices containing: 1) fraction of nodes that make contact in (t_A, t_D) 2) fraction of nodes that make contact in t_A

Parameters

show_progress (boolean) – Show if a progress indicator is shown

Returns

  • m1 (ndarray) – Matrix containing the fraction of nodes that make contact in (t_A,t_D) as a function of tau_awakening and tau_survive values

  • m2 (ndarray) – Matrix containing the fraction of nodes that make contact in t_A as a function of tau_awakening and tau_survive values

Notes

To do: allow to compute any quantity.

show_ccns(i, interactive=False)

Show simulation results.

Parameters

None

hearsay.hearsay.unwrap_run(arg, **kwarg)

Wrap the serial function for parallel run.

This function just call the serialized version, but allows to run it concurrently.

hearsay.olists module

OLISTS.

Module for the manipulation of ordered lists. This module is internal to hearsay.

class hearsay.olists.Node(data)

Bases: object

Node and linked list classes.

This class contains tools to manipulate nodes. A node is a point in the Galaxy that a acquires the ability to emit and receive messages at a given time. A set of nodes make a linked list.

getData()

Get data in a node.

getNext()

Get the next node, if exists.

setNext(newnext)

Set the next node.

class hearsay.olists.OrderedList

Bases: object

Ordered list class.

Tools to make ordered lists. This structure is useful because it can be traversed and a new node can be added at any stage. # based on http://interactivepython.org/courselib/static/pythonds/ # BasicDS/ImplementinganOrderedList.html

add(data)

Add an element to an ordered list.

isEmpty()

Ask if list is empty.

remove_first()

Remove first element.

show()

Print an ordered list.

size()

Retrieve the size of the list.

Module contents

Software for the Constrained Causally Connected Network Model.

This model is used to perform a statistical analysis of the hypothesis space for the contacts between nodes in a simplified galaxy.

Indices and tables

Minimal example

The following lines show how to install and run an example simulation suite. We assume that the package is downloaded in $hearsay_dir and the working directory is $working_dir

  1. Clone hearsay from GitHub

    cd $hearsay_dir
    git clone https://github.com/mlares/hearsay.git
    
  2. Create a virtual environment for python

    virtualenv -p $(which python3) MyVE
    source MyVE/bin/activate
    
  3. Install the hearsay package

    cd $hearsay_dir
    pip install .
    
  4. Create a configuration file. A template can be found in $hearsay_dir/set/experiment.ini

    cd $working_dir
    cp $hearsay_dir/set/experiment.ini $working_dir
    
  5. Edit the configuration file. Set the following values:

    experiment_ID = run_001
    dir_output = out
    dir_plots = plt
    
  6. Create directories for output and plots, using the same values than the variables dir_output0 and dir_plots in the configuration file, for example:

    cd $working_dir
    mkdir out
    mkdir plt
    
  7. create a file experiment.py that contains the following:

conf = hearsay.parser('hearsay_dir/set/experiment.ini')
G = hearsay.C3Net(conf)
G.set_parameters()
net = G.run(interactive=True)
R = hearsay.results(conf)
R.load()
res = R.redux_1d()
plt.hist(res['A'])
plt.show()

A file with the name entered in the variable plot_fname of the configuration file will be saved in the directory plt.