 Traditionally, research in graph theory focuses its attention very much on studying graphs that are static, however almost all real world networks are dynamic in nature, and how they have evolved over time is a defining feature to their topology and overall makeup. As network theory is a very new subject, much of it is still focused on trying to explore the basics of static graphs, as the study of their dynamics results in the addition of a whole new set of parameters to our models that takes us into a new level of complexity, much of which remains unexplored and is the subject of active research. So let's start by talking about growing a random network to see what it looks like. When we say growing a network, we might mean adding more nodes to it, but also more interestingly adding links to it that increase the overall connectivity. In our random model, links were just placed between nodes at random with some given probability. Growing the network here just meant increasing this probability so as to have more links develop over time. One interesting thing we find when we do this is that there are thresholds and phase transitions during the network's development. By thresholds, we simply mean that by gradually increasing our link probability parameter, some property to the network suddenly appeared when we passed a critical value. For example, our first threshold is when the average degree goes above one over the total number of nodes in the network. At this threshold, we start to get our first connection. At degree one, that is when every node has on average one connection, the network starts to appear connected. We see giant components emerging within the network, that is one dominant cluster and we start to have cycles, which means there are feedback loops in the network. Another threshold occurs when nodes have an average degree of log n. At this point, everything starts to be connected, meaning there is typically a path to all other nodes in the network. So this is what we see in a random network, but as we know, most real world networks are not random, as they are subject to some resource constraints and they have preferential attachment, giving them clusters that we don't see in these random graphs. One way of thinking about how real world networks form is through the lens of percolation theory. Percolation theory looks at how something filters or percolates through something else, like a liquid filtering through some mesh structure in a material, or we might think about water running down the side of a hill. As it does, the water will find the path of least resistance, creating channels and furrows in the side of the hill. We can then see how this network formation is the product of the resource constraints that its environment placed upon it, but the constraints are unevenly distributed and the network's topology is then reflecting this, as the water follows the paths of least resistance to avoid the toughest material. In order to demonstrate the more general relevance of this, we'll take some other examples. If say we put on cheap flights from one city to another, then people will start using that transportation link because of financial constraints. Or because of the phenomena of homophily within social networks, we will get the same percolation dynamics where it will be easier for people to make links with people who are similar to themselves than with others, again creating a particular structure based on the social constraints within the system. So to incorporate this into our model, we would need to add in the attributes or properties of the nodes within the network, where they will form links depending upon these properties. So in a social network, these attributes might be age, gender or income, and people will be given preferential attachments. We would then create a probability for the likelihood that any node will connect with another of the same kind, compared to whether it will connect with a node of a different kind. The result of including these factors into our representation should be a much more realistic model where we see local clustering and some distant relations. Behind this relatively abstract model to network development is a much more complex set of questions about the local incentives of the nodes in the network. Another way of looking at network formation within this model is from the perspective of the nodes and the local rules they're operating under. To do this, we might use game theory that looks at the incentives of the individuals within the network and their payoffs for forming a connection or breaking one. Another key driver behind the formation of real world networks is the so-called network effect and Meklath's law, which states that the value of a network grows as a square of the number of nodes in the network. So this goes back to one of our earlier insights that whereas the number of nodes in a network may grow in a linear fashion, the number of edges may grow exponentially. The network effect arises when users derive value from the presence of other users, with the telephone being a classical example. The more people that join the network, the more valuable it is. Thus, there is a positive feedback loop where more people joining feeds back to make the network more valuable that in turn draws more people and so on. In this way, we can get the exponential growth that we've seen in the rise of many networked organizations like Twitter and Facebook. We might then note that the development of these networks is nonlinear, with distinct tipping points because it requires a critical mass of users for something like a computer operating system to have value. But once you've gone beyond this critical mass, it then becomes very valuable because you are now able to inter-operate with many other users. This is why free is sometimes a good marketing strategy for IT startups because it is all about getting this critical mass. Once you have it, then the network effect kicks in and it becomes a must-have. The dynamics of how real-world networks are formed, strengthened and eventually dissolved is complex and still a very open area of research where lots of basic questions remain unanswered. In this section, we've just touched upon some of the main features to this process to highlight the fact that although most of our models are static, real-world networks are anything but.