Find and return a multiplex in the influence graph with the given name.
        Raise an AttributeError if there is no multiplex in the graph with the given name.

def find_multiplex_by_name(self, multiplex_name: str) -> Multiplex:
        """ 
        Find and return a multiplex in the influence graph with the given name.
        Raise an AttributeError if there is no multiplex in the graph with the given name.
        """
        for multiplex in self.multiplexes:
            if multiplex.name == multiplex_name:
                return multiplex
        raise AttributeError(f'multiplex "{multiplex_name}" does not exist')