1. A system for automatic document component layout, comprising: a processor; said processor creating a population of document layout members, each document layout being represented by a plurality of document layout values, each document layout value corresponding to a document layout variable; said processor establishing a set of constraints, the set of constraints including required constraints and desired constraints, each required constraint specifying a relationship between a variable and a document layout value, each desired constraint being an objective function; said processor solving the required constraints for each document layout member; said processor solving the desired constraints for each document layout member to establish a score for each document layout member; said processor selecting the document layout members having each solved required constraint relationship of the document layout satisfied and a score greater than or equal to a predetermined score; said processor creating a new population of children document layout members by performing crossover/mutation operations upon the selected document layout members; said processor solving the required constraints for each child document layout member; said processor solving the desired constraints for each child document layout member to establish a score for each child document layout member; said processor selecting the children document layout members having each solved required constraint relationship of the document layout satisfied and a score greater than or equal to a predetermined score; and said processor re-iterating the creating, solving, and selecting processes until a termination condition is realized, the termination condition being defined as a failure to improve the layout after a predetermined number of iterations.