In at least one embodiment, a method and a system for determining a set of plans that best match a set of preferences. The method may include receiving into a goal specification interface at least one goal to be accomplished by the set of plans; receiving into a preference engine a pattern that includes preferences; generating a planning problem by using the preference engine; generating a set of plans by at least one planner; and providing the set of plans for selection of one plan to deploy. In a further embodiment, the preferences may be an occurrence or non-occurrence of at least one component, an occurrence of one component over another component, an ordering between at least two components, an existence or non-existence of at least one tag in a final stream, an existence of one tag over another tag in the final stream.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method for operation of a system for determining a set of plans that best match a set of preferences, said method comprising: receiving at least one goal to be accomplished by the set of plans, where the at least one goal is received by a goal specification interface; receiving a pattern that includes preferences from at least one user, where a preference engine receives the pattern; generating a planning problem based on the received at least one goal and the received pattern, where the preference engine generates the planning problem; generating a set of plans, where at least one planner generates the set of plans; and providing the set of plans for selection of one plan to deploy. 2. The method according to claim 1, wherein preferences include at least one of the following: an occurrence of at least one component, a non-occurrence of at least one component, an occurrence of at least one component over at least one other component, an ordering between at least two components, an existence of at least one tag in a final stream, an existence of at least one tag over at least one other tag in the final stream, and a non-existence of at least one tag in the final stream. 3. The method according to claim 2, wherein generating the planning problem includes providing the planning problem to at least one planner. 4. The method according to claim 2, wherein the set of plans includes the top-k plans. 5. The method according to claim 4, wherein k is a predetermined constant. 6. The method according to claim 4, wherein generating the set of plans includes using the preferences to determine which plans best match the preferences using for each plan found by the planner a sum of a satisfaction number for each preference with the top-k plans being the k plans with the lowest sums of satisfaction numbers. 7. The method according to claim 6, wherein the satisfaction number for each preference is modified by a multiplier representing a priority level of the preference. 8. The method according to claim 6, wherein each preference has the same range of preference values that provide the satisfaction number. 9. The method according to claim 8, wherein the preference value range is zero to one. 10. The method according to claim 9, further comprising determining the satisfaction number for a multiple component preference order by setting i equal to n−1 where n is a number of components in the preference order, wherein i is the nth component and 0 is the first component, setting m equal to a summation of 1 to n, for each component, calculate z equal to (n−i)/m, and sum up all z values of components that did not appear in the plan to obtain the satisfaction number. 11. The method according to claim 2, further comprising updating the planning problem with the preference engine by adding a dimension to a cost/quality vector where the dimension will be used for preference satisfaction modified by a multiplier, adding a sticky tag for each preference being added to the planning problem, adding a tag for each preference being added to the planning problem, and adding a collect/forgo action for each preference being added to the planning problem. 12. The method according to claim 11, wherein updating further includes assigning a unique sticky tag to each component. 13. The method according to claim 1, wherein each preference is at least one of: an occurrence of at least one component within a flow, a non-occurrence of at least one component, an occurrence of one component over at least one other component, a temporal relation between at least two components, a temporal relation over tags, a temporal relation ranking of components, a temporal relation ranking of tags, and an existence of a tag or a preference over tags. 14. A computer program product for finding a set of plans that reach a goal based on a set of preferences, said computer program product comprising: a computer readable storage medium having encoded thereon: first program instructions executable by a processor to cause the processor to receive at least one goal to be accomplished by the set of plans; second program instructions executable by a processor to cause the processor to receive a pattern that includes preferences from at least one user, where the preferences include at least one of the following: an occurrence of at least one component, a non-occurrence of at least one component, an occurrence of at least one component over at least one other component, an ordering between at least two components, an existence of at least one tag in a final stream, an existence of at least one tag over at least one other tag in the final stream, and a non-existence of at least one tag in the final stream; third program instructions executable by a processor to cause the processor to generate a planning problem based on the received at least one goal and the received pattern; fourth program instructions executable by a processor to cause the processor to generate a set of plans for the generated planning problem; and fifth program instructions executable by a processor to cause the processor to provide the set of plans for selection of one plan to deploy. 15. The computer program product according to claim 14, wherein the set of plans includes the top-k plans where k is a predetermined constant. 16. The computer program product according to claim 15, wherein the fourth program instructions uses the preferences to determine which plans best match the preferences using for each plan found by the planner a sum of a satisfaction number for each preference with the top-k plans being the k plans with the lowest sums. 17. The computer program product according to claim 16, wherein the satisfaction number for each preference is modified by a multiplier representing a priority level of the preference. 18. The program product according to claim 17, wherein the preference value range is zero to one. 19. The program product according to claim 15, wherein the computer readable storage medium further having encoded thereon: sixth program instruction executable by a processor to cause the processor to update the planning problem by adding a dimension to a cost/quality vector where the dimension will be used for preference satisfaction times a multiplier, adding a sticky tag for each preference being added to the planning problem, adding a tag for each preference being added to the planning problem, and adding a collect/forgo action for each preference being added to the planning problem. 20. A system comprising: a preference engine configured to receive at least one goal and a set of preferences from a plurality of users; a planner in communication with said preference engine and configured to produce top-k plans that best match the set of preferences and the at least one goal received from said preference engine; a deployment engine in communication with said planner and configured to interact with at least one user for selection of the plan to be deployed by said deployment engine; and at least one database in communication with said preference engine and said planner, said at least one database storing for each preference a preference value and a priority multiplier.