Reliability and fault tolerance based topological optimization of computer networks - Part I: Enumerative techniques