Self-optimization of resilient topologies for fallible multi-robots