Computer-Implemented Marketing Optimization Systems And Methods
First Claim
1. A computer-implemented method of determining an action item from a global set of action items for a plurality of customers based on an objective function, a plurality of individual constraints, and a plurality of aggregate constraints, said method comprising:
- combining the plurality of aggregate constraints with the global set of action items such that records associated with each member of the global set of action items identify the aggregate constraints with which that member of the global set of action items is associated in a bit-wise fashion in order to create a measures data structure;
generating a plurality of offer sets for each customer that include an action item from the global set of action items in each offer set based on objective coefficients calculated in memory utilizing the measures data structure, and the plurality of individual constraints;
selecting an offer set for each customer from the plurality of generated offer sets for that customer such that the objective function is maximized; and
storing the action item included in the selected offer set in a computer-readable memory.
1 Assignment
0 Petitions
Accused Products
Abstract
Computer-implemented systems and methods are provided for determining an action item from a global set of action items for a plurality of customers based on an objective function, a plurality of individual constraints, and a plurality of aggregate constraints. A plurality of offer sets is generated for each customer. An approximate highest reduced adjusted objective for each of the offer sets for each customer is calculated, and the customers are bucketed based on the highest adjusted objective value associated with each customer. The buckets are collapsed into a single bucket record containing a plurality of aggregate offer set columns, and an aggregate offer set column is selected from each bucket record for each bucket. Each bucket associated with a selected offer set is disaggregated, and the action item included in the selected offer set is stored in a computer-readable memory.
-
Citations
24 Claims
-
1. A computer-implemented method of determining an action item from a global set of action items for a plurality of customers based on an objective function, a plurality of individual constraints, and a plurality of aggregate constraints, said method comprising:
-
combining the plurality of aggregate constraints with the global set of action items such that records associated with each member of the global set of action items identify the aggregate constraints with which that member of the global set of action items is associated in a bit-wise fashion in order to create a measures data structure; generating a plurality of offer sets for each customer that include an action item from the global set of action items in each offer set based on objective coefficients calculated in memory utilizing the measures data structure, and the plurality of individual constraints; selecting an offer set for each customer from the plurality of generated offer sets for that customer such that the objective function is maximized; and storing the action item included in the selected offer set in a computer-readable memory. - View Dependent Claims (2, 3, 4)
-
-
5. A computer-implemented system for performing an action item from a global set of action items for a plurality of customers based on an objective function, a plurality of individual constraints, and a plurality of aggregate constraints, said system comprising:
-
a measures data structure generator configured to combine the plurality of aggregate constraints with the global set of action items such that records associated with each member of the global set of action items identify the aggregate constraints with which that member of the global set of action items is associated in a bit-wise fashion to generate a measures data structure; an offer set generator configured to generate a plurality of offer sets for each customer that include an action item from the global set of action items in each offer set based on objective coefficients calculated in memory utilizing the measures data structure, and the plurality of individual constraints; an offer set selector configured to select an offer set for each customer from the plurality of generated offers sets for that customer such that the objective function is maximized; and a memory for storing the selected offer set.
-
-
6. A computer-implemented method of generating a plurality of offer sets for each of a plurality of customers based on an objective function, a plurality of individual constraints, and a plurality of aggregate constraints, said method comprising:
-
generating a first plurality of offer sets for each customer that include an action item from a global set of action items in each offer set based on an objective function; applying a Lagrange relaxation technique to the objective function based on the plurality of aggregate constraints to generate a relaxed objective function; applying a subgradient algorithm to the relaxed objective function based on the first plurality of offer sets to calculate a first upper bound objective value; generating a second plurality of offer sets based upon an adjusted objective function; reapplying a subgradient algorithm to the relaxed objective function based on the second plurality of offer sets to calculate a second upper bound objective value; comparing the second upper bound objective value to the first upper bound objective value; appending the second plurality of offer sets to the first plurality of offer sets; and storing the first plurality of offer sets in a computer-readable memory; wherein the steps of generating a second plurality of offer sets, reapplying a subgradient algorithm, and appending the second plurality of offer sets are repeated if the difference between the second upper bound objective value and the first upper bound objective value is greater than a threshold value. - View Dependent Claims (7, 8, 9)
-
-
10. A computer-implemented system of generating a plurality of offer sets for each of a plurality of customers based on an objective function, a plurality of individual constraints, and a plurality of aggregate constraints, said system comprising:
-
a candidate calculator configured to generate a first plurality of offer sets for each customer, the offers sets including an action item from a global set of action items in each offer set based on an objective function; a subgradient calculator configured to make a determination as to the sufficiency of the first plurality of offer sets, the subgradient calculator comprising; a constraint integrator configured to apply a Lagrange relaxation technique to the objective function based on the plurality of aggregate constraints to generate a relaxed objective function; a subgradient algorithm calculator configured to apply a subgradient algorithm to the relaxed objective function based on the first plurality of offer sets to calculate a first upper bound objective value; wherein the candidate calculator and the subgradient calculator are further configured to generate a second plurality of offer sets and a second upper bound objective value; wherein the second plurality of offer sets is appended to the first plurality of offer sets to generate a compendium of offer sets; a memory for storing the compendium of offer sets; a comparison calculator configured to direct the candidate calculator and the subgradient calculator to operate on a third plurality of offer sets if a difference between the first upper bound objective value and the second upper bound objective value is not within a threshold value.
-
-
11. A computer-implemented method of determining an action item from a global set of action items for a plurality of customers based on an objective function, a plurality of individual constraints, and a plurality of aggregate constraints, said method comprising:
-
generating a plurality of offer sets for each customer that include an action item from the global set of action items in each offer set; calculating an approximate highest adjusted objective value for each of the generated offer sets for each customer; bucketing the customers based on the highest adjusted objective value associated with each customer; collapsing each bucket into a single bucket record containing a plurality of aggregate offer set columns; selecting an aggregate offer set column from each bucket record; disaggregating each bucket to associate a selected offer set with each customer in the bucket according to the selected aggregate offer set column for the bucket; and storing the action item included in the selected offer set in a computer-readable memory. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer-implemented system for determining an action item from a global set of action items for a plurality of customers based on an objective function, a plurality of individual constraints, and a plurality of aggregate constraints, said system comprising:
-
a candidate calculator configured to generate a plurality of offer sets for each customer that include an action item from the global set of action items in each offer set; a highest adjusted objective value calculator configured to calculate an approximate highest adjusted objective value for each of the generated offer sets for each customer; a customer bucket calculator configured to group the customers based on the highest adjusted objective value associated with each customer; a customer bucket aggregator configured to collapse each bucket into a single bucket record containing a plurality of aggregate offer set columns; a bucket solver configured to select an aggregate offer set column for each bucket record; a customer bucket disaggregator configured to disaggregate each bucket to associate a selected offer set with each customer in the bucket according to the selected aggregate offer set column for the bucket; and a memory for storing the action item included in the selected offer set for each customer.
-
-
21. A computer-implemented method of determining an action item from a global set of action items for a plurality of customers based on an objective function, a plurality of individual constraints, and a plurality of aggregate constraints, said method comprising:
-
generating a plurality of offer sets for each customer that include an action item from the global set of action items in each offer set; calculating a highest adjusted objective value for each of the generated offer sets for each customer; bucketing the customers based on the highest reduced adjusted objective associated with each customer; collapsing each bucket into a single bucket record containing a plurality of aggregate offer set columns; selecting an aggregate offer set column for each bucket; disaggregating each bucket to associate a selected offer set with each customer in the bucket according to the selected aggregate offer set column for the bucket; retaining a portion of the customer-selected offer set associations as final customer-selected offer sets; repeating the steps of bucketing the customers, collapsing each bucket, selecting an aggregate offer set, disaggregating each bucket, and retaining a portion of the customer-selected offer set associations utilizing a smaller bucket size; and storing the action item included in the final customer-selected offer set in a computer readable memory. - View Dependent Claims (22, 23)
-
-
24. A computer-implemented system for determining an action item from a global set of action items for a plurality of customers based on an objective function, a plurality of individual constraints, and a plurality of aggregate constraints, said system comprising:
-
a candidate calculator configured to generate a plurality of offer sets for each customer that include an action item from the global set of action items in each offer set; a highest adjusted objective value calculator configured to calculate an approximate highest adjusted objective value for each of the generated offer sets for each customer; a customer bucket calculator configured to group the customers based on the highest adjusted objective value associated with each customer; a customer bucket aggregator configured to collapse each bucket into a single bucket record containing a plurality of aggregate offer set columns; a bucket solver configured to select an aggregate offer set column for each bucket record; a customer bucket disaggregator configured to disaggregate each bucket to associate a selected offer set with each customer in the bucket according to the selected aggregate offer set column for the bucket; and an offer set evaluator configured to retain a number of selected offer sets based on a criteria, the offer set evaluator configured to discard the remainder of the selected offer sets; a memory for storing the action item included in the retained selected offer sets; wherein the computer-implemented system is configured to operate the customer bucket calculator, the customer bucket aggregator, the bucket solver, the bucket disaggregator, and the offer set evaluator over a pre-specified number of loops; wherein for each loop, a bucket group size of the customer calculator is reduced; wherein customers associated with a retained selected offer set are not considered in subsequent loops; wherein all selected offer sets are retained during a final traversal of the loop.
-
Specification