Abstract:
A market selection optimization method comprising the steps of assigning product offers to consumers in the presence of multiple constraints, such that each consumer is assigned at least one product offer; determining a difference in expected profitability associated with the assigned product offer and a different product offer for each consumer; sorting the consumers according to the respective difference in expected profitabilities associated with the product offers; and reassigning the product offers to the sorted consumers in accordance with the respective difference in expected profitabilites. The result of this process is a selection of marketing offers that optimizes expected revenues.

Description:
CROSS-REFERENCE TO RELATED APPLICATION  
       [0001]     This application is a continuation of application Ser. No. 09/546,949, entitled “Marketing Selection Optimization Process,” filed Apr. 11, 2000, Attorney Docket Number ISAA0048, which application is incorporated herein in its entirety by the reference thereto. 
     
    
     FIELD OF THE INVENTION  
       [0002]     The present invention relates to a marketing selection optimization process for the marketing of goods or other services to consumers. More specifically, the present invention relates to a marketing selection process for optimizing profits per offer in the marketing of goods or other services to consumers.  
       BACKGROUND  
       [0003]     Increasingly, in the current competitive business climate, there is a profit driven motive to maximize the profitability of goods and services that are provided or marketed to potential or existing customers. The marketing pool for a product that is marketed to customers, who may accept the product, can be very large, such as on the order of tens of millions of customers. As such, the ability to market a specific product or service to a particular customer(s) from a portfolio of possible offers, in order to maximize the profit obtained for that portfolio of products or services, becomes increasingly complex and time consuming as the numbers of products and customers increase.  
         [0004]     Using a profit model for a particular product, provided the product is the only possible product for marketing, it is relatively easy to identify the most profitable customers by using the profit model to rank-order candidates by the predicted profit associated with each particular customer and associated product.  
         [0005]     While the marketing problem of maximizing the total profit of one product is relatively easy, maximizing the total profit of multiple product offerings to multiple customers becomes increasingly complex. Accordingly, when multiple products are marketed simultaneously, maximizing the marketing profit of each product on an individual basis (e.g., one by one) will generally not maximize the total portfolio marketing profit.  
         [0006]     For instance,  FIGS. 7A and 7B  illustrate a simple example of the aforementioned problem when multiple products are marketed simultaneously, wherein maximizing the marketing profit of each product on an individual basis (e.g., one by one) will generally not maximize the total portfolio marketing profit.  
         [0007]      FIG. 7A  illustrates the situation where two different products (e.g., products A and B) are marketed to four different consumers or customers (e.g., customers  1 - 4 ), wherein (1) each customer is to receive only one product offer, and (2) two of each product is offered or sold to the customers. As illustrated in  FIG. 7A , the maximum profit extracted from customer  1  is with product A (57); the maximum profit extracted from customer  2  is with product B (35); the maximum profit extracted from customer  3  is with product A (32); and the maximum profit extracted from customer  4  is with product B (8), as two of each product must be offered or sold to the customers. As such, in  FIG. 7A , the total maximum profit achieved in this example is: 57+35+32+8=132.  
         [0008]      FIG. 7B  illustrates an example, which the present invention is directed to, where the two different products (e.g., products A and B), from  FIG. 7A , are marketed to four different consumers or customers (e.g., customers  1 - 4 ), wherein (1) each customer is to receive one product, and (2) two of each product is offered or sold to the customers. As illustrated in  FIG. 7B , the maximum profit extracted from customer  1  is with product A (57); the maximum profit extracted from customer  2  is with product B (35); the maximum profit extracted from customer  3  is with product A (29), instead of product B (32); and the maximum profit extracted from customer  4  is with product B (26), this combination of products and customers satisfies the requirements of having two of each product being offered or sold to the customers. As such, as illustrated in  FIG. 7B , the total maximum profit achieved in this example is: 57+35+29+26=147, which is about a 10% higher profit than total maximum profit of example of  FIG. 7A .  
         [0009]     As illustrated by the above example in  FIG. 7A , the maximum profit determined from the process of maximizing the marketing profit of each product on an individual basis (e.g., one by one) generally does not maximize the total marketing profit. Rather, in support of this assertion, as clearly illustrated by the example of  FIG. 7B , it is possible to maximize the total marketing profit using a technique other than the process commonly used in maximizing the marketing profit of each product on an individual basis (e.g., one by one), which generally does not maximize the total marketing profit, as illustrated in the comparison of total profits of the examples of  FIG. 7A  and  FIG. 7B .  
         [0010]     Moreover, the ability to maximize profits with operations involving selling multiple products to multiple customers under the objective of maximizing the total profit to the client (e.g., financial institution) is further complicated by such considerations and constraints as individual customer restrictions, policy, and/or product restrictions.  
         [0011]     For instance, some operations necessitate consideration of such restrictions as individual customer restrictions, marketing resource restrictions, and marketing policy restrictions, which may need to be considered in or during the operational process.  
         [0012]     In order to be a viable operation with the ability to maximize profits with operations involving selling multiple products to multiple customers under the objective of maximizing the total profit to the client (financial institution), the operation must generally contend with: (1) the complex mathematical/statistical problem of maximizing the total profit of multiple product offerings offered to multiple clients, which becomes increasingly complex with the addition of more products and clients; and (2) the problem of incorporating consideration restrictions such as individual customer restrictions, marketing resource restrictions, and marketing policy restrictions, which may need to be included in the operational process.  
         [0013]     Currently, there are a variety of different techniques used by individuals and businesses, which attempt to maximize profits in situations involving multiple product offerings offered to multiple clients. Presently, the various techniques employed to maximize profits, however, generally fail to actually maximize overall profits, which results in unnecessary lost profits to the client (e.g., financial institution).  
         [0014]     It is therefore desirable to provide a technique that provides clients with the ability to effectively maximize profits in operations involving selling multiple products to multiple customers under the objective of maximizing the total profit to the client offering the products to customers.  
       SUMMARY OF THE INVENTION  
       [0015]     Embodiments of the present invention provide for a market selection optimization method and computer medium.  
         [0016]     In one embodiment, the market selection optimization method generally comprises the steps of assigning product offers to consumers such that each consumer is assigned at least one product offer; determining a difference in expected profitabilty associated with the assigned at least one product offer and a different product offer for each consumer; sorting the consumers according to the respective difference in expected profitabilities associated with the product offers; and reassigning the product offers to the sorted consumers in accordance with the respective difference in expected profitabilities.  
         [0017]     In an alternate embodiment, the market selection optimization method comprises the steps of assigning product offers to consumers such that each consumer is assigned at least one product offer from a combination of two product offers, wherein a first product offer is made to a first group of consumers and a second product offer is made to a second group of consumers resulting in an assignment pattern; determining a difference in expected profitabilty associated with the assigned product offers for each consumer; sorting the consumers according to the respective difference in expected profitabilities; and reassigning the product offers to the sorted consumers in accordance with the assignment pattern. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0018]     The present invention is illustrated by way of example in the following drawings in which like references indicate similar elements. The following drawings disclose various embodiments of the present invention for purposes of illustration only and are not intended to limit the scope of the invention.  
         [0019]      FIG. 1  illustrates an embodiment of a computing environment in which the invention may be implemented in accordance with the teachings of one embodiment of the present invention.  
         [0020]      FIG. 2  illustrates an embodiment of an exemplary network environment in which the present invention may be employed in accordance with the teachings of one embodiment of the present invention.  
         [0021]      FIG. 3  illustrates an embodiment of a method capable of implementing the teachings of the present invention, in flow-chart diagram format, in accordance with the teachings of one embodiment of the present invention.  
         [0022]      FIG. 4  illustrates an embodiment of an example of the optimization process in accordance with the teachings of one embodiment of the present invention.  
         [0023]      FIG. 5  illustrates an alternate embodiment of an example of the optimization process in accordance with the teachings of one embodiment of the present invention.  
         [0024]      FIG. 6  illustrates an embodiment of a machine-readable medium  600 , suitable for use with a computer/network environment, in accordance with the teachings of one embodiment of the present invention.  
         [0025]      FIG. 7A  (labeled prior art) illustrates an example of the currently employed techniques that are employed for customer/product profit optimization.  
         [0026]      FIG. 7B  illustrates an example of the inefficiency of the currently employed techniques that are employed for customer/product profit optimization. 
     
    
     DETAILED DESCRIPTION  
       [0027]     The following detailed description sets forth numerous specific details to provide a thorough understanding of the invention. However, those of ordinary skill in the art will appreciate that the invention may be practiced without these specific details. In other instances, well-known methods, procedures, protocols, components, algorithms, and circuits have not been described in detail so as not to obscure the invention.  
         [0028]     In one embodiment, the steps of the present invention are embodied in machine-executable instructions, such as computer instructions. The instructions can be used to cause a general-purpose or special-purpose processor that is programmed with the instructions to perform the steps of the present invention.  
         [0029]     Alternatively, the steps of the present invention might be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.  
       Computer Environment  
       [0030]      FIG. 1  and the following description are intended to provide a general description of a suitable computing environment in which the invention may be implemented. Although not necessarily required, the invention will be described in the general context of computer-executable instructions, such as program modules, being executed by a computer, such as a client workstation or a server.  
         [0031]     Generally, program modules include routines, programs, objects, components, data structures and the like that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.  
         [0032]     As shown in  FIG. 1 , an exemplary general purpose computing system may include a conventional personal computer  20  or the like, including a processing unit  21 , a system memory  22 , and a system bus  23  that couples various system components including the system memory  22  to the processing unit  21 . The system bus  23  may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The system memory  22  may include read-only memory (ROM)  24  and random access memory (RAM)  25 . A basic input/output system  26  (BIOS), containing the basic routines that help to transfer information between elements within the personal computer  20 , such as during start-up, may be stored in ROM  24 . The personal computer  20  may further include a hard disk drive  27  for reading from and writing to a hard disk (not shown), a magnetic disk drive  28  for reading from or writing to a removable magnetic disk  29 , and an optical disk drive  30  for reading from or writing to a removable optical disk  31  such as a CD-ROM or other optical media. The hard disk drive  27 , magnetic disk drive  28 , and optical disk drive  30  may be connected to the system bus  23  by a hard disk drive interface  32 , a magnetic disk drive interface  33 , and an optical drive interface  34 , respectively.  
         [0033]     The drives and their associated computer-readable media provide non-volatile storage of computer readable instructions, data structures, program modules and other data for the personal computer  20 .  
         [0034]     Although the exemplary embodiment described herein may employ a hard disk, a removable magnetic disk  29 , and a removable optical disk  31 , or combination thereof, it should be appreciated by those skilled in the art that other types of computer readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memories (RAMs), read-only memories (ROMs) and the like may also be used in the exemplary operating environment.  
         [0035]     A number of program modules may be stored on the hard disk, magnetic disk  29 , optical disk  31 , ROM  24  or RAM  25 , including an operating system  35 , one or more a plication programs  36 , other program modules  37  and program data  38 . A user may enter commands and information into the personal computer  20  through input devices such as a keyboard  40  and pointing device  42 . Other input devices (not shown) may include a microphone, joystick, game e pad, satellite disk, scanner, or the like. These and other input devices are often connected to the processing unit  21  through a serial port interface  46  that is coupled to the system bus  23 , but may be connected by other interfaces, such as a parallel port, game port, or universal serial bus (USB). A monitor  47  or other type of display device may also be connected to the system bus  23  via an interface, such as a video adapter  48 . In addition to the monitor  47 , personal computers may typically include other peripheral output devices (not shown), such as speakers and printers.  
         [0036]     The personal computer  20  may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer  49 . The remote computer  49  may be another personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the personal computer  20 , although only a memory storage device  50  has been illustrated in  FIG. 1 . The logical connections depicted in  FIG. 1  include a local area network (LAN)  51  and a wide area network (WAN)  52 . Such networking environments are commonplace in offices, enterprise-wide computer networks, Intranets, and the Internet.  
         [0037]     When used in a LAN networking environment, the personal computer  20  is connected to the LAN  51  through a network interface or adapter  53 . When used in a WAN networking environment, the personal computer  20  typically includes a modem  54  or other means for establishing communications over the wide area network  52 , such as the Internet. The modem  54 , which may be internal or external, is connected to the system bus  23  via the serial port interface  46 . In a networked environment, program modules depicted relative to the personal computer  20 , or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.  
       Network Environment  
       [0038]     As noted, the general-purpose computer described above can be deployed as part of a computer network. In general, the above description applies to both server computers and client computers deployed in a network environment.  FIG. 2  illustrates one such exemplary network environment in which the present invention may be employed. As shown in  FIG. 2 , a number of servers  10   a ,  10   b , etc., are interconnected via a communications network  160  (which may be a LAN, WAN, Intranet or the Internet) with a number of client computers  20   a ,  20   b ,  20   c , etc. In a network environment in which the communications network  160  is, e.g., the Internet, the servers  10  can be Web servers with which the clients  20  communicate via any of a number of known protocols such as, for instance, hypertext transfer protocol (HTTP). Each client computer  20  can be equipped with a browser  180  to gain access to the servers  10 , and client application software  185 . As shown in the embodiment of  FIG. 2 , server  10   a  includes or is coupled to a dynamic database  12 .  
         [0039]     As shown, the database  12  may include database fields  12   a , which contain information about items stored in the database  12 . For instance, the database fields  12   a  can be structured in the database in a variety of ways. The fields  12   a  could be structured using linked lists, multi-dimensional data arrays, hash tables, or the like. This is generally a design choice based on ease of implementation, amount of free memory, the characteristics of the data to be stored, whether the database is likely to be written to frequently or instead is likely to be mostly read from, and the like. A generic field  12   a  is depicted on the left side. As shown, a field generally has sub-fields that contain various types of information associated with the field, such as an ID or header sub-field, type of item sub-field, sub-fields containing characteristics, and so on. These database fields  12   a  are shown for illustrative purposes only, and as mentioned, the particular implementation of data storage in a database can vary widely according to preference.  
         [0040]     Thus, the present invention can be utilized in a computer network environment having client computers for accessing and interacting with the network and a server computer for interacting with client computers and communicating with a database with stored inventory fields. Likewise, the marketing selection optimization process of the present invention can be implemented with a variety of network-based architectures, and thus should not be limited to the examples shown. The present invention will now be described in more detail with reference to preferred embodiments.  
       Market Selection Optimization Process  
       [0041]     The present invention is directed to a method or process wherein a singular or series of items, products, actions, or services are offered to a series of customers, wherein the objective is to maximize the total profit (P T ) derived from the product offerings to the customers. The term product or product offer may refer to a specific product, product offer, service, action, or a change associated with the same, but is not limited to such. Likewise, the term consumer or customer may refer to an individual, household, an account, a group, organization, institution, or other entity, but is not limited to such.  
         [0042]     Although one embodiment of the present invention, as embodied in the appended claims, is described in terms of a product/consumer relationship example, it is understood that the concepts of the present invention may be applied to a variety of different scenarios. As such, the concepts of the present invention may be applied in a variety of different scenarios wherein an optimization process is to be applied to a data set.  
         [0043]      FIG. 3  illustrates an embodiment of a method capable of implementing the teachings of the present invention, in flow-chart diagram format. Although the present invention will be described in terms of specific examples, it is understood that the inventive concepts, as embodied in the appended claims, may be applied to wide variety of data processing scenarios and a wide variety of different data types.  
         [0044]     Initially, in one embodiment, assume there are N candidate customers in the market and suppose we have M products for marketing. Each separate product will be marketed to N i  {i=1, 2, . . . , M) customers from the N candidates.  
         [0045]     Likewise, suppose we have built M profitability models, one for each of the M products. The predicted profit for marketing product i to customer j is denoted by p (i, j). In one embodiment, we are restricted in that each customer can only be marketed one product at one time. As such, the objective is to maximize the total profit (PT) derived from offering the products to the customers.  
         [0046]     The mathematical representation of the marketing problem scenario to be addressed by the present method may be illustrated as follows:  
         P   T     =       ∑     j   =   1     N     ⁢       ∑     i   =   1     M     ⁢       a   ⁡     (     i   ,   j     )       ×     p   ⁡     (     i   ,   j     )                 
                       ⁢       a   ⁡     (     i   ,   j     )       =     {     0   ,   1     }                 i   =   1     ,   2   ,   …   ⁢           ,     M   ;               j   =   1     ,   2   ,   …   ⁢           ,   N                   ∑     i   =   1     M     ⁢     a   ⁡     (     i   ,   j     )         =   1             j   =   1     ,   2   ,   …   ⁢           ,   N                               ∑     j   =   1     N     ⁢     a   ⁡     (     i   ,   j     )         =     N   i               i   =   1     ,   2   ,   …   ⁢           ,   M                               ⁢         ∑     i   =   1     M     ⁢     N   i       ≤   N                                           (   1   )             
 
 In the above marketing problem, a(i, j), being either zero or one, indicates whether products i is marketed to candidate j. 
 
         [0047]     The set of equations (1) employed by one embodiment of the present invention is a type of linear integral programming problem and it belongs to a class of mathematical problems called “NP-hard”, or “non-deterministic in polynomial time”. When N is over a million, it is generally nearly impossible to exhaustively solve the problem for the global maximum profit using today&#39;s machines and techniques.  
         [0048]     In the present invention, at Block  300 , a dummy product is initially introduced into the equation (1), wherein the profit for the dummy product will result in a zero (0) value for all marketing candidates. Accordingly, the dummy product will be marketed to (N−Σ i=1   M N i ) customers, and as such the “less that and equal” sign in the last line of equation (1) is transformed into an equal sign.  
         [0049]     Initially, the solution to a special case of the marketing profit maximization is illustrated: the marketing of two products, such that the M in the above equations is equal to 2. To make the problem even simpler, we suppose every candidate will be offered a product. Equation (1) then becomes:  
               P   T     =       ∑     j   =   1     N     ⁢       ∑     i   =   1     2     ⁢       a   ⁡     (     i   ,   j     )       ×     p   ⁡     (     i   ,   j     )                                                     ⁢       a   ⁡     (     i   ,   j     )       =     {     0   ,   1     }                 i   =   1     ,     2   ;               j   =   1     ,   2   ,   …   ⁢           ,   N                   a   ⁡     (     1   ,   j     )       +     a   ⁡     (     2   ,   j     )         =   1                         j   =   1     ,   2   ,   …   ⁢           ,   N                   ∑     j   =   1     N     ⁢     a   ⁡     (     i   ,   j     )         =     N   i               i   =   1     ,   2                               ⁢         N   i     +     N   2       =   N                                       
 
         [0050]     Accordingly, the general solution to the above problem, commonly referred to as a two product complete marketing algorithm, is: 
    (1) Sort all the candidate according to p (I, j)−p (2, j) in decreasing order (2) Choose N i  customers from the top of the sorted list for product  1      (3) The rest of the customers are for product  2     
 
         [0053]     As such, the two product complete marketing algorithm is intended to produce the global maximum marketing profit. The proof may be illustrated by the following example, wherein when a change is made to any customer (a) from the list of product  1  with a customer (b) from the list of product  2 , the profit difference will be  
               Δ   ⁢           ⁢   p     =       ⁢       (       p   ⁡     (     2   ,   a     )       +     p   ⁡     (     1   ,   b     )         )     -     (       p   ⁡     (     1   ,   a     )       +     p   ⁡     (     2   ,   b     )         )                   =       ⁢       (       p   ⁡     (     2   ,   a     )       -     p   ⁡     (     2   ,   b     )         )     -     (       p   ⁡     (     1   ,   a     )       +     p   ⁡     (     1   ,   b     )         )                 
 
 Since customer (a) is above customer (b) on the sorted list, we have 
 
 p (1,  a )− p (1,  b )≧ p (2,  a )− p (2,  b ) 
 
So, 
 
Δp≦O. 
 
 Accordingly, the total profit will be reduced when we switch any one customer in the list of product  1  with any one customer in the list of product  2 . Therefore, the total profit generated by the two product complete marketing algorithm is maximized. 
 
         [0054]     For many practical “real world” problems, the number of products is generally two or more. In the above example, we describe an algorithm that uses the “two product complete marketing” process to address this multiple product problem. Accordingly, in one embodiment, when more than two products need to be marketed, we consider two products at each time to generate the global maximum profit of the two products, which is a local maximum for the entire optimization. Initially, we can assign the candidates to products randomly, although this can easily be improved. We then iterate through all combinations of two products to increase the total profit, this iteration process can be continued while monitoring the total profit until the desired asymptotic approach to the global maximum is attained.  
         [0055]     Referring to back to  FIG. 3 , as mentioned above, at Block  300  a dummy product is introduced. The expected profitability of the dummy product will be zero (0) for all customers. The number of customers for the dummy product will be the difference of the total customers and the total marketed customers for all products.  
         [0056]     At Block  305 , in one embodiment, a random assignment is made of the N i  customers to product i {i=1, 2, . . . , M}. Alternately, a ‘greedy’ algorithm may be invoked to assign the N customers to the M products. As such, the process is initialized by assigning at least one particular product or product offer to each customer. As mentioned, this can be done randomly or through the use of any other available algorithm. In one embodiment, the single product models are used to initialize the process by assigning the top decile consumers to that product for each model, removing multiple entries, and continuing through the lower deciles until each customer has an assignment. The complete process is generally insensitive to the initialization process.  
         [0057]     Next, at Block  310 , any two products (e.g., i{i=1, 2, . . . , M} and j{j≠i; j=1, 2, . . . , M}) from the offered products list are chosen (e.g., the assigned product and another product), whereupon the respective expected profitabilities associated with each product offer for each consumer is determined.  
         [0058]     Accordingly, at Block  315 , the list of customers of both offered products is sorted by the difference in these respective expected profitabilities (DEP). In one embodiment, the consumers or candidates k{k=1, 2, . . . , (N i +N j )} are sorted according to p (i, k)−p (j, k), which is the difference in respective expected profitabilities, in decreasing order. Accordingly, N i  customers are chosen from the top of the sorted list for product i and the remaining customers are chosen for product j. In an alternate embodiment, the consumers or candidates k {k=1, 2, . . . , (N i +N j )} are sorted according to p(i, k)−p (j, k), which is the difference in respective expected profitabilities, in increasing order. Accordingly, in one selected embodiment, N i  customers are chosen from the bottom of the sorted list for product i and the remaining customers are chosen for product j. It is understood that in some instances, a customer product offer for a particular customer may be exchanged when the overall profitability can be increased by the exchange.  
         [0059]     At Block  320 , repeat Block  310  and Block  315  for each two-product combination to increase the overall profitability. In one embodiment, during the instance of Block  320 , the first profit associated with a particular product is overwritten by subsequent profit amounts associated with that same product when determining the final profit amount for that product. In an alternate embodiment, the different profits associated with each corresponding product may simply be compared to each other to determine the maximum profit for that particular product. The operation of Block  320  will be illustrated in further detail by example in the following description.  
         [0060]     At Block  320 , the final resulting profits associated with the respective products are summed to provide a final total profit (P T ) for the different products (PI, P 2 , . . . , Px), which are being offered to the different customers (C 1 , C 2 , . . . , Cx). As such, the final total profit (P T ) may be expressed as 
 
 P   T =Final Profit [ P   1 ]+Final Profit [ P   2 ]+ . . . +Final Profit [ Px].  
 
         [0061]     At Block  325 , repeat Block  310  through Block  320 , if necessary. In one embodiment, it is typically sufficient to repeat Block  310  through Block  320  three times for optimization purposes. In an alternate embodiment, the expression (TPx−TPy)/TPx&gt;0.01, wherein TPx and TPy represent respective total profits obtained at different stages of the process, is used to determine whether to repeat Block  310  through Block  320 . Likewise, the operation of Block  325  will be illustrated by example in the following description.  
         [0062]      FIG. 4  illustrates one embodiment of a practical operational example of the optimization process described above. As illustrated in  FIG. 4 , two different products (P 1  and P 2 ) are being offered to five different customers (C 1 , C 2 , C 3 , C 4  and C 5 ) with the goal of maximizing the overall final total profit (P T ) for the particular product offering of products P 1  and P 2 . In the embodiment of  FIG. 4 , P 1  is offered to three of the five customers and P 2  is offered to the remaining two customers.  
         [0063]     As such, in accordance with Block  305 , a random assignment is made of the N i  customers to product i{i=1, 2, . . . , M}. Alternately, a ‘greedy’ algorithm may be invoked to assign the N customers to the M products. Accordingly, the process is initialized by assigning one particular product or product offer to each customer. As mentioned earlier, this can be done randomly or through the use of any other available algorithm.  
         [0064]     Therefore, as illustrated in Step  1  in  FIG. 4 , a random assignment of the products P 1  and P 2  is made, wherein product  1  (P 1 ) is chosen to be marketed to three customers of the five customers, and product  2  (P 2 ) is chosen to be marketed to the two remaining customers from the overall total of five customers. Accordingly, using a random assignment, product P 1  is assigned to customers C 1 , C 2 , and C 3  and product P 2  is assigned to C 4  and C 5 . As a result, the total profit for this random assignment is (10+15+14)+(21+23)=83.  
         [0065]     Next, in accordance with Block  310 , any two products (e.g., i{i=1, 2, . . . , M} and j{j≠i; j=1, 2, . . . , M}) from the offered products list are chosen, whereupon the respective expected profitabilities for each consumer is determined.  
         [0066]     Accordingly, in the example of  FIG. 4 , only a total of two products (P 1  and P 2 ) are being offered to the customers C 1  through C 5 . As such, the expected profitabilities for each customer is determined by using the only two products that are being offered, illustrated as Step  2  in  FIG. 4 . As such, the expected profitability difference (P 1 −P 2 ) for each consumer is as follows: CI=P 1 −P 2 =10−20=−10; C 2 =P 1 −P 2 =15−14=1; C 3 =P 1 −P 2 =14−18=−4; C 4 =P 1 −P 2 =16−21=−5; and C 5 =P 1 −P 2 =17−23=−6.  
         [0067]     In accordance with Block  315 , the list of customers of both offered products are sorted by the difference in their respective expected profitabilities. In one embodiment, the consumers or candidates k{k=1, 2, . . . , (N i +N j )} are sorted according to p(i, k)−p (j, k), which is the difference in respective expected profitabilities, in decreasing order. Accordingly, N i  customers are chosen from the top of the sorted list for product i and the remaining customers are chosen for product j. In an alternate embodiment, the consumers or candidates k{k=1, 2, . . . , (N i +N j )} are sorted according to p (i, k)−p(j, k), which is the difference in respective expected profitabilities, in increasing order. Accordingly, N i  customers are chosen from the bottom of the sorted list for product i and the remaining customers are chosen for product j. It is understood that in some instances, a customer product offer for a particular customer may be exchanged when the overall profitability can be increased by the exchange.  
         [0068]     Accordingly, the list of customers of both offered products is sorted by the difference in these respective expected profitabilities (DEP), illustrated as Step  3  in  FIG. 4 . Therefore, C 2  is first on the list with an DEP of 1, followed by C 3  with an DEP of −4, followed by C 4  with an DEP of −5, followed by C 5  with an DEP of −6, and finally C 1  with an DEP of −10.  
         [0069]     Referring back to the random assignment above, product PI was randomly assigned to customers C 1 , C 2 , and C 3  and product P 2  was randomly assigned to C 4  and C 5 . As such, product PI was randomly assigned to three customers and product P 2  was randomly assigned to two customers. In accordance with the original random assignment, the first three customers (e.g., C 2 , C 3 , and C 4 ) from the sorted list are assigned to the product P 1  and the last two customers (e.g., C 5  and C 1 ) are assigned to the product P 2 . As a result, the final total profit (P T ) for this new assignment is (15+14+16)+(23+20)=88, as opposed to the total profit for the initial random assignment, which yielded a total profit of (10+15+14)+(21+23)=83. As such, by employing the above illustrated optimization method, an additional profit of approximately 9.4% was realized.  
         [0070]     In the example of  FIG. 4 , Block  320  and Block  325  are omitted as there are only a total of two different products being offered, and as such, in the example of  FIG. 4 , Block  320  and Block  325  are generally unnecessary.  
         [0071]      FIG. 5  illustrates a more pragmatic scenario or example wherein a collection of three different products are offered to six different customers, illustrating the optimization method disclosed above. The above method is best understood with reference to an actual example of the method in practical operation.  
         [0072]     As illustrated in  FIG. 5 , three different products (P 1 , P 2 , and P 3 ) are being offered to six different customers (C 1 , C 2 , C 3 , C 4 , C 5 , and C 6 ) with the goal of maximizing the overall final total profit (P T ) for the particular product offering of products P 1 , P 2 , and P 3 . In the embodiment of  FIG. 5 , P 1  is offered to two of the six customers, P 2  is offered to another two of the six customers, and P 3  is offered to the remaining two customers.  
         [0073]     In accordance with Block  305 , a random assignment is made of the N i  customers to product i {i=1, 2, . . . , M}. Alternately, a ‘greedy’ algorithm may be invoked to assign the N customers to the M products. As such, the process is initialized by assigning one particular product offer to each customer. As mentioned, this can be done randomly or through the use of any other available algorithm.  
         [0074]     Therefore, in the example of  FIG. 5 , a random assignment of the products P 1 , P 2 , and P 3  is made, illustrated as Step  1  in  FIG. 5 , wherein product  1  (P 1 ) is chosen to be marketed to two customers of the six customers, product  2  (P 2 ) is chosen to be marketed to another two of the six customers, and product  3  (P 3 ) is chosen to be marketed to the remaining two customers from the overall total of six customers.  
         [0075]     Accordingly, using a random product/customer assignment, product P 1  is assigned to customers C 1  and C 2 ; product P 2  is assigned to C 3  and C 4 ; and product P 3  is assigned to C 5  and C 6 . As a result, the total profit for this random assignment is (10+15)+(18+21)+(19+21)=103, as illustrated in Step  1  of  FIG. 5 .  
         [0076]     Next, in accordance with Block  310 , any two products (e.g., i{i=1, 2, . . . , M} and j{j≠i; j=1, 2, . . . , M}) from the offered products list are chosen, whereupon the respective expected profitabilities for each customer is determined.  
         [0077]     Accordingly, in the example of  FIG. 5 , a total of three products are being offered to the customers C 1  through C 6 . Accordingly, in one embodiment, the expected profitabilities for each customer is determined by analyzing two products at a time, in different product combinations, to determine the expected profitability (Px−Py) for each consumer. As such, in the example of  FIG. 5 , the expected profitability (Px−Py) for each consumer is determined by using two products at a time in different product combinations, as follows: (P 1 −P 2 ), (P 1 −P 3 ), and (P 2 −P 3 ).  
         [0078]     Accordingly, for the customers in the P 1  and P 2  lists, which are customers C 1 , C 2 , C 3 , and C 4 , the expected profitability (Px−Py) is determined in accordance with the following (P 1 −P 2 ), which is illustrated as Step  2 . As such, the expected profitability (P 1 −P 2 ) for each customer is as follows C 1 =P 1 −P 2 =10−20=−10; C 2 =P 1 −P 2 =15−14=1; C 3 =P 1 −P 2 =14−18=−4; and C 4 =P 1 −P 2 =16−21=−5.  
         [0079]     In accordance with Block  315 , the list of customers of both offered products is then sorted by the difference in these respective expected profitabilities (DEP). Therefore, as illustrated in Step  3  of  FIG. 5 , C 2  is first on the list with an DEP of 1, followed by C 3  with an DEP of −4, followed by C 4  with an DEP of −5, followed by C 1  with an DEP of −10 or (1, −4, −5, and 10).  
         [0080]     In accordance with the difference in the respective expected profitabilities (DEP) customers C 2  and C 3  are placed in the P 1  list and customers C 4  and C 1  are placed in the P 2  list, illustrated as Step  4  in  FIG. 5 .  
         [0081]     In accordance with Block  320 , the process is repeated for the remaining two product combinations (e.g., remaining product combinations (P 1 −P 3 ) and (P 2 −P 3 )) to increase the overall profitability of the marketing of the offered products.  
         [0082]     As such, in accordance with Block  310 , the next two product combination (e.g., (P 1 −P 3 )) from the offered product list is processed, whereupon the respective expected profitabilities for each customer is determined, which is illustrated as Step  5  in  FIG. 5 . Accordingly, for the customers in the P 1  and P 3  lists, which are customers C 2 , C 3 , C 5  and C 6 , the expected profitability (Px−Py) is determined in accordance with the following (P 1 −P 3 ). As such, the expected profitability (P 1 −P 3 ) for each consumer is as follows: C 2 =P 1 −P 3 =15−16=−1; C 3 =P 1 −P 3 =14−17=−3; C 5 =P 1 −P 3 =17−19=−2; and C 6 =P 1 −P 3 =16−20=−4.  
         [0083]     Similarly, in accordance with Block  315 , the list of customers of both offered products is then sorted by the difference in these respective expected profitabilities (DEP). Therefore, as illustrated in Step  6 , C 2  is first on the list with an DEP of −1, followed by C 5  with an DEP of −2, followed by C 3  with an DEP of −3, followed by C 6  with an DEP of −4 or (−1, −2, −3, and −4).  
         [0084]     In accordance with the difference in the respective expected profitabilities (DEP), customers C 2  and C 5  are placed in the P 1  list and customers C 3  and C 6  are placed in the P 3  list, illustrated at Step  7 .  
         [0085]     Again, in accordance with Block  320 , the process is repeated for the remaining two products combinations (e.g., remaining product combination (P 2 P 3 )) to increase the overall profitability of the offered products.  
         [0086]     As such, in accordance with Block  310 , the last two product combination (e.g., (P 2 −P 3 )) from the offered product list is processed, whereupon the respective expected profitabilities for each consumer is determined, which is illustrated as Step  8 . Accordingly, for the customers in the P 2  and P 3  lists, which are customers C 1 , C 3 , C 4  and C 6 , the expected profitability (Px−Py) is determined in accordance with the following (P 2 −P 3 ). As such, the expected profitability (P 2 −P 3 ) for each consumer is as follows: C 1 =P 2 −P 3 =20−15=5; C 3 =P 2 −P 3 =18−17=1; C 4 =P 2 −P 3 =21−18=3; and C 6 =P 2 −P 3 =19−20=−1.  
         [0087]     In accordance with Block  315 , the list of customers of both offered products is then sorted by the difference in these respective expected profitabilities (DEP). Therefore, as illustrated in Step  9 , C 1  is first on the list with an DEP of 5, followed by C 4  with an DEP of 3, followed by C 3  with an DEP of 1, followed by C 6  with an DEP of −1 or (5, 3, 1, and −1).  
         [0088]     In accordance with the difference in the respective expected profitabilities (DEP), customers C 1  and C 4  are placed in the P 2  list and customers C 3  and C 6  are placed in the P 3  list, illustrated at Step  10 .  
         [0089]     As a result, the three different two product combinations provide the following customer/product matches:  
                                       For Product Combination P1   C2 and C3 in P1 List = 15 + 14 = 29       and P2   C4 and C1 in P2 List = 21 + 20 = 41       For Product Combination P1   C2 and C5 in P1 List = 15 + 17 = 32       and P3   C3 and C6 in P3 List = 17 + 20 = 37       For Product Combination P2   C1 and C4 in P2 List = 20 + 21 = 41       and P3   C3 and C6 in P3 List = 17 + 20 = 37                  
 
         [0090]     As such, product P 1  has a first profit amount of 29 (15+14) from the first combination of consumers C 2  and C 3  and a second profit amount of 32 (15+17) from the second combination of consumers C 2  and C 3 . Product P 2  has a first profit amount of 41 (21+20) from the first combination of consumers C 4  and C 1  and a second identical profit amount of 41 (21+20) from the second combination of identical consumers C 1  and C 4 . Product P 3  has a first profit amount of 37 (17+20) from the first combination of consumers C 3  and C 6  and a second identical profit amount of 37 (17+20) from the second combination of identical consumers C 3  and C 6 .  
         [0091]     Accordingly, in one embodiment, the first profit associated with a particular product is overwritten by subsequent profit amounts associated with that same product (e.g., in the example of  FIG. 5 , the first profit amount is overwritten by the second profit amount associated with the same product) when determining the final profit amount for that product. In an alternate embodiment, the different profit amounts associated with each corresponding product may simply be compared to each other to determine the maximum profit for that particular product.  
         [0092]     In the example of  FIG. 5 , the first profit associated with each product is overwritten by the subsequent profit associated with the same product. As such, the first profit amount of 29 (15+14) for product P 1  is overwritten by the second profit amount of 32 (15+17) for product P 1 ; the first profit amount of 41(21+20) for product P 2  is overwritten by the second profit amount of 41 (21+20) for product P 2 ; and the first profit amount of 37 (17+20) for product P 3  is overwritten by the second profit amount of 37 (17+20) for product P 3 . As a result, the final profit for product P 1  is 32 (15+17), the final profit for product P 2  is 41 (21+20), and the final profit for product P 3  is 37 (17+20).  
         [0093]     Accordingly, the final total profit (P T ) for the three different products (P 1 , P 2 , and P 3 ), which are being offered to six different customers (C 1 , C 2 , C 3 , C 4 , C 5 , and C 6 ), comprises the sum of the final profits associated with the respective products. As such, the final total profit (P T ) may be expressed as P T =Final Profit [P 1 ]+Final Profit [P 2 ]+Final Profit [P 3 ]=(15+17)+(21+20)+(17+20)=32+41+32=110.  
         [0094]     As can be easily observed, the final total profit (P T )=(15+17)+(21+20)+(17+20)=32+41+32=110, employing the above described optimization method, is greater then the total profit obtained through the initial random assignment of products (e.g., (10+15)+(18+21)+(19+21)=103).  
         [0095]     As mentioned above, at Block  325 , Block  310  through Block  320  may be repeated if necessary. Likewise, as mentioned above, it is generally sufficient to repeat Block  310  through Block  320  three times for optimization purposes.  
         [0096]     For instance, using the example of  FIG. 5 , at the end of Step  1  we have a total profit, say TP 1  (e.g., the total profit of the random assignment in  FIG. 5  results in a total profit of 103) and at the end of Step  10  we have an updated final total profit, say TP 2  (e.g., the final total profit using the optimization method, as illustrated in  FIG. 5  results in a final total profit (P T ) of 110). Accordingly, in one embodiment, the expression (TP 2 −TPI)/TP 1  may be used to determine if Step  2  through Step  10  should be repeated, which correspond to Block  310  through Block  320 .  
         [0097]     Generally, Step  2  through Step  10  (e.g., Block  310  through Block  320 ) are typically repeated in situations involving three or more products being offered to multiple customers.  
         [0098]     In one embodiment, Step  2  through Step  10  (e.g., Block  310  through Block  320 ) are repeated when the following expression is satisfied: TP 2 −TP 1 )/TP 1 &gt;specified value SV), in one embodiment the specified value (SV) is 0.01. After we have repeated Step  2  to Step  10  (e.g., Block  310  through Block  320 ), we will have a new final total profit, say TP 3 . Accordingly, the expression (TP 3 −TP 2 )/TP 2  may be used to see if Step  2  to Step  10  (e.g., Block  310  through Block  320 ) should be repeated once again.  
         [0099]     Although the teachings of the present invention are illustrated as embodied in the context of a customer/product profit optimization process, the present invention is not intended to be limited to such contexts. Rather the teachings disclosed in the present invention could be applied to a variety of data processing scenarios wherein optimization of different data types is desired.  
         [0100]      FIG. 6  illustrates an embodiment of a machine-readable medium  600  containing various sets of instructions, code sequences, configuration information, and other data used by a computer or other machine processing device. The embodiment of the machine-readable medium  600 , illustrated in  FIG. 6 , is suitable for use with the computer/network environment described above. The various information stored on medium  600  is used to perform various data processing operations. Machine-readable medium  600  is also referred to as a computer-readable or processor-readable medium. Machine-readable medium  600  can be any type of magnetic, optical, or electrical storage medium including a diskette, magnetic tape, CD-ROM, memory device, or other storage medium or carrier-wave signal.  
         [0101]     Machine-readable medium  600  includes interface code  602  that controls the flow of information between various devices or components within the computer/network environment. Interface code  602  may control the transfer of information within a device, or between an input/output port and a storage device. Additionally, interface code  602  may control the transfer of information from one device to another.  
         [0102]     Machine-readable medium  600  also includes assignment code  604  to perform a random assignment of the N i  customers to product i{i=1, 2, . . . , M}. Alternately, a ‘greedy’ algorithm may be invoked by interface code  604  to assign the N customers to the M products. As such, the process is initialized by assigning one particular product or product offer to each customer. As mentioned, this can be done randomly or through the use of any other available algorithm. In one embodiment, the single product models are used to initialize the process by assigning the top decile consumers to that product for each model, removing multiple entries, and continuing through the lower deciles until each customer has an assignment. The complete process is generally insensitive to this initialization process.  
         [0103]     Next, the assignment code  604  is configured to chose any two products (e.g., i{i=1, 2, . . . , M} and j{j≠i; j=1, 2, . . . , M}) from the offered products list, whereupon the respective expected profitabilities for each consumer is determined.  
         [0104]     Accordingly, determination code  606  analyzes the list of customers of both offered products, wherein the list of customers of both offered products is sorted by the difference in these respective expected profitabilities by the determination code  606 . In one embodiment, the consumers or candidates k{k=1, 2, . . . , (N i +N j )} are sorted according to p (i, k)−p (j, k), which is the difference in respective expected profitabilities, in decreasing order. Accordingly, N i  customers are chosen from the top of the sorted list for product i and the remaining customers are chosen for product j. In an alternate embodiment, the consumers or candidates k {k=1, 2, . . . , (N i +N j )} are sorted according to p (i, k)−p (j, k), which is the difference in respective expected profitabilities, in increasing order. Accordingly, in one selected embodiment, N i  customers are chosen from the bottom of the sorted list for product i and the remaining customers are chosen for product j. It is understood that in some instances, a customer product offer for a particular customer may be exchanged when the overall profitability can be increased by the exchange.  
         [0105]     Accordingly, the determination code  606  repeats the analysis for each two-product combination to increase the overall profitability. In one embodiment, the first profit associated with a particular product is overwritten by subsequent profit amounts associated with that same product by determination code  606  when determining the final profit amount. In an alternate embodiment, the different profits associated with each corresponding product may simply be compared to each other by determination code  606  to determine the maximum profit for that particular product.  
         [0106]     Determination code  606  then calculates the final total profit (P T ) for the different products (P 1 , P 2 , . . . , Px), which are being offered to the different customers (C 1 , C 2 , . . . , Cx), by summing the final resulting profits associated with the respective products to provide the final total profit (P T ). As such, the final total profit (P T ) may be expressed as P T =Final Profit [P 1 ]+Final Profit [P 2 ]+ . . . +Final Profit [Px].  
         [0107]     Determination code  606  is configured to repeat the assignment, analysis, and final total profit calculations (P T ), provided the determination code  606  concludes that such a repetition is necessary during the optimization process. In one embodiment, it is typically sufficient to repeat the process three times for optimization purposes. In an alternate embodiment, the expression (TPx−TPy)/TPx&gt;specified value (SV), in one embodiment the specified value (SV) is 0.01, wherein TPx and TPy represent respective total profits obtained at different stages of the process, is used to determine whether to repeat select steps of the optimization process.  
         [0108]     As such, the machine-readable medium  600  is configured to operate in accordance with the concepts of the above illustrated optimization process. As such, the machine-readable medium  600  is configured to execute the operational steps of the optimization process, as illustrated and discussed above in description.  
         [0109]     From the above description and drawings, it will be understood by those of ordinary skill in the art that the particular embodiments shown and described are for purposes of illustration only and are not intended to limit the scope of the invention. Those of ordinary skill in the art will recognize that the invention may be embodied in other specific forms without departing from its spirit or essential characteristics. References to details of particular embodiments are not intended to limit the scope of the claims.