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.