1. A method for correcting a mask pattern, comprising: accessing a mask pattern for a mask, the mask pattern segmented into a plurality of segments; establishing an attribute value of a plurality of attribute values for each segment of the plurality of segments, the attribute value for a segment describing an attribute of the segment; and repeating the following for one or more of the plurality of attribute values to generate a corrected mask pattern: selecting one or more segments of the plurality of segments using one or more attribute values of the plurality of attribute values; calculating a current correction value for each of the selected segments, the current correction values calculated with respect to one or more previously selected segments moved according to one or more previously calculated correction values; and updating the selected segments according to the current correction values.