public static Map<String, Integer> solve(Set<String> dimensions,
                                             ListMap<DimensionRenamer.Arc, DimensionRenamer.Constraint> constraints,
                                             int maxIterations) {
        return new NamingConstraintSolver(dimensions, constraints, maxIterations).trySolve();
    }
Attempts to solve the given naming problem. The input maps are never modified.

@return the solution as a map from existing names to name ids represented as integers, or NULL
        if no solution could be found
model-integration/src/main/java/ai/vespa/rankingexpression/importer/NamingConstraintSolver.java