Just some remarks about incomplete networks, which are very important, because in most applications we will face them.
Up to now we have focused on:
- complete networks
- complete networks without feedback loops
- and have shortly mentioned also directed complete networks, which have no feedback loops and in which each path runs only in the same direction, starting with the lower point number and ending at a higher point number
In applications we will face any kind of incomplete networks, in which some connections between points do not exist.
The general procedure to deal with any kind of incomplete network is:
- we start with a complete network of the same order as the incomplete network has
- we calculate all paths in the complete network
- we filter out all the paths, which fulfill all conditions of the incomplete network
- we compare the incomplete with the complete network and calculate several key figures, with which we can characterize incomplete networks and compare them one with the other, but also with the complete network of the same order.
For incomplete networks of low order we can do it manually, but in general we will need to use computer programs.
The general procedure, to write a program is:
- we calculate all subsets for the set with n points
- we calculate all permutations for each of the subsets
- we apply several if-then-else conditions, which specify, which paths we want to keep.
The details, how to do it, depend of course on the programming language.
- in Lisp and similar languages ( like also Wolfram ) , we have to deal with lists and then apply the commands for lists, to filter out the wanted paths.
- in Fortran and similar languages, we have to use matrices, in which each row represents a path. We then check each row with the if -then- else conditions, which we integrate in do- loops.
For networks of very high order, probably to use Fortran might be better. If we want to analyze information network structures in biology for instance, in which eventually billions of points define the network, then Fortran probably is the best choice, because for it very advanced compilers exist, which can do the calculations parallel on many computers.
We will discuss applications in future posts, using both languages.
But before we leave the ideal world of abstract information networks, we want to consider as a geometric application multidimensional cubes 🙂