Complex networks, complex processes: A network science miscellany¶
There are plenty of excellent books on network science, from the deeply technical [5, 7] to the more accessible [1, 2]: I’ve even written one myself on applications of networks to epidemic modelling . So why write another?
This book arose from my dissatisfaction with much of the literature on network science, which arises generally from the fields of mathematics and statistical physics. Both fields have a written culture that’s terse and to the point, focusing on presenting new results in a concise and general form. They are generally light on descriptions of the methods used, and often don’t provide much in the way of background. The normal citation format in the physics literature often doesn’t even include the titles of the papers being referenced, rather just including authors, journal, and date. Taken together these features present a formidable learning curve for anyone not deeply familiar with the concerns and approaches of the field: and how does one acquire such familiarity in the first place?
As a computer scientist I’m also interested in the methods and calculations that go into demonstrating and validating the results presented. Actually, I’m fascinated by how one conducts numerical simulations, and how we make software that’s easy for practitioners to use. These are not common concerns within the network science community, where there is a distinct lack of common, reusable tooling and very few signs of modern software engineering practices like continuous integration, unit testing, automation, and the like – all of which are considered essential good practice by computer scientists. Tooling of this kind itself has a learning curve, and just as many lack the necessary maths background (but understand computing), others will not be able to develop or evolve a complex codebase (but will have the maths to describe how it should work). This book is intended for both these kinds of scientists.
In writing this book I’m therefore concentrating far more than is usual on the mechanics of network science: not only how do the systems work and evolve mathematically, but how we explore them computationally. The rubric is very simple: all the maths has code to back it up, and all the code has its mathematical underpinnings explained. In this way I hope to help people to climb the twin learning curves more quickly and be able to make their own contributions to network science and its applications.
This book is a work-in-progress, growing slowly as I add explanations to the work I’m doing. It may grow non-linearly – very appropriately – as I flesh-out the background to material already present.