  We consider the classic problem of Network Reliability. A network is given
together with a source vertex, one or more target vertices, and probabilities
assigned to each of the edges. Each edge appears in the network with its
associated probability and the problem is to determine the probability of
having at least one source-to-target path. This problem is known to be NP-hard.
  We present a linear-time fixed-parameter algorithm based on a parameter
called treewidth, which is a measure of tree-likeness of graphs. Network
Reliability was already known to be solvable in polynomial time for bounded
treewidth, but there were no concrete algorithms and the known methods used
complicated structures and were not easy to implement. We provide a
significantly simpler and more intuitive algorithm that is much easier to
implement.
  We also report on an implementation of our algorithm and establish the
applicability of our approach by providing experimental results on the graphs
of subway and transit systems of several major cities, such as London and
Tokyo. To the best of our knowledge, this is the first exact algorithm for
Network Reliability that can scale to handle real-world instances of the
problem.
