1. A method for satisfying routing rules during routing of an integrated circuit (IC) chip design, comprising: receiving a routing solution for the IC chip design and a set of routing rules to be satisfied by the routing solution; assigning a weight to each routing rule in the set of routing rules, wherein a higher weight for a routing rule indicates a higher importance of the routing rule; assigning an effort level to each routing rule in the set of routing rules, wherein an effort level for a routing rule indicates one or more of: the number of iterations that can be used to satisfy the routing rule, or the number of rip-up and reroutes that can be used to satisfy the routing rule; and modifying, by computer, the routing solution to satisfy the routing rules based at least on the weights and the effort levels that were assigned to the routing rules.