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 weights to the set of routing rules, wherein a higher weight for a routing rule indicates a higher importance of the routing rule; assigning effort levels to the set of routing rules, wherein a higher effort level for a routing rule indicates that a higher amount of resources are available to satisfy the routing rule; and modifying the routing solution to satisfy the routing rules based at least on the weights and the effort levels associated with the routing rules.