A method for performing a matrix-based verification technique such as
optical process correction (OPC) that analyzes interactions between
movement of a fragment on a mask and one or more edges to be created on a
wafer. In one embodiment, each edge to be created is analyzed and one or
more fragments of a mask are moved in accordance with a gradient matrix
that defines how changes in position of a fragment affect one or more
edges on the mask. Fragments are moved having a significant effect on an
edge in question. Simulations are performed and fragments are moved in an
iterative fashion until each edge has a objective within a prescribed
tolerance. In another embodiment, each edge has two or more objectives to
be optimized. A objective is selected in accordance with a cost function
and fragments are moved in a mask layout until each edge has acceptable
specification for each objective.