The concept of a communication network emerged, many times in the past, for connecting a large number of systems, replacing dedicated point-to-point connection and other small-scale interconnection mechanisms. Each network needs to provide a cost effective solution for a large number of possibly conflicting requirements such as flexibility, scalability, reliability and performance. Therefore, the task of network architects and designers is to solve multiple instances of a complex constrained optimization problem resulting in numerous and diverse network solutions. For example, there are different standards and architectures associated with interconnection networks, home networks, LANs, MANs, WANs and wireless networks.