Portrait Miner Optimizer User Guide

Portrait Optimizer User Guide
Version 7.1
©
2016 Pitney Bowes Software Inc. All rights reserved.
This document may contain confidential and proprietary information belonging to Pitney Bowes Inc. and/or its
subsidiaries and associated companies.
Portrait Software, the Portrait Software logo, Portrait, and Portrait Software's Portrait brand are the trademarks
of Portrait Software International Limited and may not be used or exploited in any way without the prior express
written authorization of Portrait Software International Limited.
Acknowledgement of trademarks
Other product names, company names, marks, logos and symbols referenced herein may be the trademarks
or registered trademarks of their registered owners.
Portrait Software Support
If you need help with something that is not covered by this documentation, try the Knowledge Base on our web
site. http://support.portraitsoftware.com and follow the links to your product.
You can also download other Portrait Software documentation from the site. If you do not have a username
and password—or you have forgotten them—please contact us through one of the channels below.
If you find a problem with the use, installation, or documentation of this product, please contact us using any
of the following methods:
Email:[email protected]
Phone
• USA/Canada 1-800-335-3860 (toll-free)
• Rest of world +44 800 840 0001
When you report a problem, it helps if you can tell us:
•
•
•
•
The name of the software application
The circumstances in which the problem arose
What error messages you saw (if any);
The version of the software that you were using.
Pitney Bowes Software Inc.
February 23, 2016
Contents
Chapter 1: Introduction..............................................................................................5
About this document...........................................................................................................6
About Portrait Optimizer.....................................................................................................6
Contact optimization considerations................................................................................7
Chapter 2: Running the Portrait Optimizer wizard...................................................9
Running the Portrait Optimizer wizard............................................................................10
Other Portrait Optimizer file actions................................................................................15
Chapter 3: Running Portrait Optimizer from the Command Line.........................17
Running Portrait Optimizer from the Command Line....................................................18
Chapter 4: Input parameter reference.....................................................................19
Input parameter reference................................................................................................20
Chapter 5: Portrait Optimizer outputs.....................................................................23
Portrait Optimizer outputs................................................................................................24
Contact optimization result file........................................................................................24
Forecast report..................................................................................................................24
Portrait Optimizer model...................................................................................................25
Portrait Dialogue deployment..........................................................................................25
Chapter 6: Administration and configuration.........................................................29
Configuring site specific default parameters.................................................................30
Missing value treatment....................................................................................................30
Cases when optimization can fail....................................................................................30
Convergence......................................................................................................................30
Introduction
In this section:
• About this document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
• About Portrait Optimizer . . . . . . . . . . . . . . . . . . . . . . . . . . .6
• Contact optimization considerations . . . . . . . . . . . . . . . . .7
1
About this document
About this document
Purpose of document
This document is intended as a user guide for the Portrait Optimizer extension to Portrait Miner and
Portrait Dialogue.
Who should read this document?
Marketers or analysts who want to build constrained decision optimization modules with Portrait Optimizer.
What is Portrait Optimizer?
Portrait Optimizer is Portrait's solution developing constraint based optimization models to suggest the
best decision for each customer from a predefined set of options based on predicted return on investment.
This allows you to automatically assign customers to the right channel, offer or campaign taking into
account costs, revenues, channel constraints, contact preferences, eligibility and predictive modeling
inputs of likelihood and value of responses.
Related documentation
• Portrait Miner 7.1 Online Help
• Portrait Miner 7.1 Integration User Guide
The product documentation is also available on the Portrait Support website:
http://support.portraitsoftware.com
Software release
• Portrait Optimizer 7.1
• Portrait Miner 7.1
• Portrait Dialogue 6.1
About Portrait Optimizer
Using predictive analytics within contact planning is one way to optimize marketing spend in a customer
centric way. However, there are many other opportunities to optimize contact strategies all with the single
aim of trying to make the right offer to the right person at the right time. The sheer volume of choices
about what to offer, how to offer it and through which channels means optimizing the mix for best use
of the available budget is too complex to do manually.
Deciding what is the best thing to offer a customer at a particular time is a problem which can be tackled
mathematically and so automated to determine the best actions to take to maximize the return on your
marketing investment. To make the algorithm relevant within a business context it has to work within the
6
Portrait Optimizer 7.1
Chapter 1: Introduction
budgets, costs, contact preferences and other operational constraints and fuse in predictions of how
customers are likely to respond to estimate the return.
As with other analytical optimization, the benefits of reduced costs and improved responses can only be
realized if these optimized decisions can be operationally deployed so that the marketing planners can
make use of them within an automated campaign plan.
Portrait Optimizer is an extension of Portrait Miner for constrained contact optimization, which is optionally
integrated with Portrait Dialogue for operational deployment within an outbound customer management
system.
Portrait Optimizer is available a licensed component of Portrait Miner.
Contact optimization considerations
Contact optimization aims to predict contact decisions for a set of customers so as to maximize the
Return on Investment (ROI) from a single marketing campaign consisting of a number of distinct outcomes
(or decisions or offers) within a set of business constraints on eligible customers, and campaign and
offers. ROI is calculated at the customer level – subtracting the costs of that contact with the predicted
benefits– and then aggregated to the campaign level. A mathematical solver optimizes the allocation of
customers to outcomes using a 'Nelder-Mead' downhill simplex algorithm to maximize over all ROI over
all outcomes by finding optimal cutoffs on value models associated with each outcome. The result is a
predictive model expressed in the same form as any other Portrait Miner model and deployable to create
per-customer predictions.
In preparation for contact optimization you need to consider:
• Which decision outcomes are available as an offer: these could be for different channels e.g. email,
direct mail or telemarketing; different offers e.g. offer mortgages, loans or savings; or even different
campaigns e.g. cross-sell, retention or information gathering.
• The overall campaign business constraints, in terms of numbers of contacts, costs or revenues
generated with either maximum or minimum limits set e.g. don't spend more than $10,000 on this
campaign.
• The costs for an individual to receive each offer.
• The business constraints for each offer in the same terms e.g. don't offer more than 1,000 new
mortgages, or offer at least 10,000 direct mail pieces.
• Which customers are eligible for the decision overall and for each outcome branch (e.g. don't email
opt-outs) and how this compares with the population you plan to deploy the resulting contact optimization
model.
• How to estimate revenues generated by each offer in terms of fixed values or customer level
predictions are to be used to estimate responses and revenue returns on the decision.
• How you plan to deploy the results in terms of insights generated, scored analytical datasets, active
Portrait-format predictive models or for direct evaluation within Portrait Dialogue.
These options are captured as parameters to Portrait Optimizer.
Portrait Optimizer User Guide
7
Running the Portrait
Optimizer wizard
In this section:
• Running the Portrait Optimizer wizard . . . . . . . . . . . . . . .10
• Other Portrait Optimizer file actions . . . . . . . . . . . . . . . . .15
2
Running the Portrait Optimizer wizard
Running the Portrait Optimizer wizard
To use the wizard to run Portrait Optimizer:
1. Log in to Portrait Miner.
2. Start browse to the modeling dataset you want to analyze.
3. Right-click on the (.ftr) modeling dataset (or .qsop parameter file) and select Portrait Optimizer.
The Portrait Optimizer wizard starts with a set of steps to lead you through the process of building and
deploying contact optimization models.
Parameters tab
When you start Portrait Optimizer on a modeling dataset, you can choose where the initial contact
optimization parameters are sourced from. Either
• You choose to select an existing optimization from Portrait Dialogue (through the Portrait Shared
Repository, PSR, database), if that integration has been configured. Typically this will be a 'partial'
optimization, where the parameters have been defined within Portrait Dialogue's Visual Dialogue
application, but no result has been computed yet.
• You choose from an existing parameters file ('.qsop').
• You can use the default parameters.
Inputs tab
You then choose the data source for Portrait Optimizer.
10
Portrait Optimizer 7.1
Chapter 2: Running the Portrait Optimizer wizard
• If you have started the wizard from a modeling dataset – you choose the sub-focus to analyze.
• If you have started the wizard from a parameters file – you first choose the analysis dataset to analyze
(defaulting to a dataset with the same file stem as the parameters) and then the sub-focus.
• If you choose to access parameters from Portrait Dialogue, you can browse for the Portrait Dialogue
customer domain and the pre-defined (partial) contact optimization.
Outputs tab
The Outputs tab allows you to configure the destination for the results to be produced by Portrait Optimizer.
• If the integration with Portrait Dialogue is installed, you can optionally choose to save the contact
optimization rule in the Portrait Dialogue database.
• You choose where you want the Portrait Optimizer results to be saved in the Portrait Optimizer archive
('.qsor') file so you can review or share the results at a later date.
Portrait Optimizer User Guide
11
Running the Portrait Optimizer wizard
• You can optionally choose to save the parameters to a parameters ('.qsop') file so that you can easily
run a similar optimization again.
• You can optionally choose to deploy the contact optimization model on the modeling data set and save
an output focus containing the results as a derived field so that you can perform further exploration
and analysis within Portrait Miner.
Advanced tab
The advanced tab allows the user to configure various features of the optimization algorithm. See Running
Portrait Optimizer from the Command Line on p16 for details.
Global constraints tab
This tab allows you to configure global constraints for the campaign overall. All of these parameters are
optional.
12
Portrait Optimizer 7.1
Chapter 2: Running the Portrait Optimizer wizard
You can provide a Boolean Portrait Miner (FDL) expression that defines the overall eligible population
for the optimization, an expected population size for the deployment scenario and constraints on quantity,
cost and value returned.
Configure outcomes tab
This tab allows you to configure the individual outcomes for the optimization.
You can provide (unique) labels, expression for eligible customers, costs, benefits (as another Portrait
Miner expression, with a set of pre-configured forms) and constraints (again across quantity, cost and
value dimensions).
You must provide an outcome label, and these will be the derived label scores in any deployment
subsequently evaluated.
When you press the Go button Portrait Optimizer checks for contradictory constraints; for example, a
'min' is greater than its partner 'max'. Checks are also made that constrains on each outcome do not
contradict the global constraints. For example, if an individual outcome's 'Minimum quantity' is greater
than the global 'Maximum quantity' or if the sum of the outcomes maximums is less than the global
minimum. If such a setting is found you will get a warning and you can choose to proceed anyway or go
back through the wizard to fix the problems. Note that a setting where an outcome's constraints are
looser than the global's is not a considered contradictory: for example 'Maximum quantity' is greater than
the global 'Maximum quantity'.
Portrait Optimizer User Guide
13
Running the Portrait Optimizer wizard
Output tab
Shows you the progress of the optimization in terms of a report of counts and revenues for each iteration
of the algorithm.
When the 'number of starts' is one this will show the algorithm 'homing in' on the final result. With more
than one start this will happen multiple times so it more difficult to interpret the output. Portrait Optimizer
reports on the best result found when the optimization is complete.
Audit tab
Shows you the optimization forecast report, summarizing the results of the optimization process and
outcome allocations made.
Publish optimization tab
Allows you to deploy the optimization results back to Portrait Dialogue.
14
Portrait Optimizer 7.1
Chapter 2: Running the Portrait Optimizer wizard
In analogy with what happened when you selected contact optimization parameters from Portrait Dialogue
to start with, you can choose the details of the Portrait Dialogue Customer Domain, and the name of the
deployed optimization result. If you pick a name of an optimization which already exists, the new result
will replace the existing one; if you pick a new name, then you will create a new optimization in Portrait
Dialogue.
Other Portrait Optimizer file actions
Modeling dataset (.ftr) files
The default 'Decision Optimization' action on a modeling dataset starts the Portrait Optimizer wizard on
that dataset.
Contact optimization parameter (.qsop) files
The default 'Decision Optimization' action on a contact optimization file starts the Portrait Optimizer
wizard. An alternative action 'Edit' opens a text editor to allow the parameters file to be viewed and edited
directly.
Contact optimization result archive (.qsor) files
The default 'View' action on a contact optimization result archive file views the contact optimization
forecast report in a web browser. An alternative action 'Unpack to Folder' allows the archive to be
unpacked to allow you to access the individual items within the archive. A 'Publish to Portrait Shared
Repository' action allows you to publish a pre-created contact optimization result to Portrait Dialogue.
Portrait Optimizer User Guide
15
Running Portrait Optimizer
from the Command Line
In this section:
• Running Portrait Optimizer from the Command Line . . .18
3
Running Portrait Optimizer from the Command Line
Running Portrait Optimizer from the Command Line
Portrait Optimizer is also provided by a Portrait Miner Data-Build Command (DBC), called
qsdecisionoptimizer. In common with all DBCs this allows you to run Portrait Optimizer at the command
line to automate or schedule the development of contact optimization models.
Synopsis
qsdecisionoptimizer -focus <focus file>
-spec <QSOP specification file>
-output <output QMML file>
[-archive] [-componentversion] [-force][-novalidate]
[-report <file name>][ -runtimereport]
[-savefocus<focus file>][-subfocus<sub focus name>]
-weights <field name>
Description Use a contact optimization parameters specification to build a contact optimization model
on the specified focus, and create a new contact optimization model in an XML-based model format.
Optional arguments
Option
Effect
-archive
Create the result as a contact optimization archive
(.qsor) containing the QMML, XML report and
HTML report.
-componentversion
Show the component version.
-force
Allow an existing output QMML and/or focus file to
be overwritten.
-novalidate
Do not validate the specification file.
-report <file name>
The name of a file to write the report XML
document to. Ignored ifarchive set.
-runtimereport
Report results to standard output as the
optimization runs.
-savefocus<focus file>
Save this focus complete with the derivation of the
new optimization.
-subfocus <sub focus name>
The subfocus to use instead of the default.
-weights <field name>
The name of a focus field containing record
weights.
Notes
The -force option applies only to the output QMML file. An existing report file may be overwritten even
if the option is not specified.
Other standard Portrait Miner DBC options are, where appropriate, recognized.
18
Portrait Optimizer 7.1
Input parameter reference
In this section:
• Input parameter reference . . . . . . . . . . . . . . . . . . . . . . . . .20
4
Input parameter reference
Input parameter reference
Most of the parameters to the optimization are included in an xml format contact optimization parameters
(.qsop) specification file. The formal XML-schema for this file is available in the Portrait Optimizer
installation, so this section describes the semantics rather than the format.
Optimization element
The overall parent element contains the options controlling the operation of the optimization and XML
namespace attributes. These advanced parameters include:
• starts: This controls the number of starting positions for the search for the optimal solution. Higher
numbers give a better chance of finding the optimal solution rather than some sub-optimal 'local'
maximum. The default value is 3.
• startscale: This controls the positioning of the starting position or positions in relation to the min and
max values found in each value model. The default value of 1.0 sets the starting positions to be drawn
from the full range of possible values. A smaller value will limit the starting positions to a range centered
on the min and max values.
• convergencethreshold: This controls the point at which the optimization considers that it has found
a solution. Lower numbers give a more 'accurate' solution but note that this may be a more accurate
non-optimal solution, especially if the number of starts is low. The value is used in evaluating how well
the algorithm has converged with respect to the range of possible values for each of the cutoffs. The
default value is 0.0001, i.e. a 'solution' has been found such that all points in the search agree the
cutoffs to within one ten thousandth of the range of possible values.
• dither: Constant value 'models' (e.g. everyone is worth $10) present a problem since the optimization
has nothing to work with. A more subtle problem is where a model does provide variation but is 'lumpy',
giving many records exactly the same value, making it impossible for the optimization to meet the
constraints.
Dithering (adding some random noise) to the value models helps deal with these cases. The default
value is 0.01 (values are dithered by +-0.5%). Note that this not only allows two records with equal
value to be treated differently, it potentially allows a 'worse' record to beat a 'better' one if the values
were sufficiently close. If no dithering is desired, set this value to 0.
Note that where dithering is used the computed ROI value will differ very slightly from expectations
due to the small random amounts added to and subtracted from each model value.
• maxevaluations: This controls the maximum number of evaluations used in attempting to converge
to a solution for any one of the starts. If none of the starts converge within this number of evaluations
the optimization will fail. Default value is 500.
• penaltyfactor: The implementation 'steers' the optimization by applying penalties when constraints
are broken. This parameter controls the size of these penalties. A value of 1 will penalize by a similar
amount to that gained by breaking the constraint. In order to provide some 'steer' a value greater than
1 should be used. Higher values will impose constraints more strongly. The default value is 5.0.
• goal: This is a placeholder for future development and is not currently used, but should always have
the value "roi".
• currencysymbol: This is the symbol used to display all currency values with Portrait Optimizer.
20
Portrait Optimizer 7.1
Chapter 4: Input parameter reference
Outcomes element
For now only one outcomes element is supported (though the file format allows for future extension in
that it encloses outcome elements in an outcomes element allowing a future implementation to deal
with multiple outcome sets).
The file optionally specifies global (in fact per outcome set) eligibility and constraints.
The file defines a number of outcomes each having an associated value with optional cost and eligibility.
In addition an outcome may have constraints. This element encloses an outcome set.
The optional deploypopsize parameter allows the optimization to be performed with respect to an
expected population size where the optimization is to be deployed (i.e. the focus data is uniformly weighted
such that the number of records after the global eligibility selection is put in place equals the given
deploypopsize.
The optional command line parameter '-weights' allows for non-uniform weighting of the dataset, by
specifying a weights field in the focus. If a weights field is specified, any deploypopsize parameter is
ignored. The weights field must reflect the deployment scenario directly, it is not 're-weighted'.
Eligibility element
Outcome (or global outcome set) eligibility is optionally indicated by a fragment of FDL that should
evaluate to false for a non-eligible record and true for an eligible record in the focus.
Global eligibility is optionally indicated by a fragment of FDL that should evaluate to false for a
non-eligible record and true for an eligible record in the focus. The global eligibility should reflect the
records that will be seen in the expected deployment scenario for the optimization rule.
For example, if the outcome involves sending an email, the eligibility condition might be
!isnull(EmailAddress), where EmailAddressis a field in the focus.
Constraints element
Outcome (or outcome set) constraints can be the minimum (min) and/or maximum (max) desired value,
quantity or cost. These may be specified as a numeric value only. Portrait Optimizer will attempt to find
a solution that meets the constraints but cannot guarantee to do so.
There is no checking that the constraints are 'sane', so if you constrain such that 100 offers must be
made and that costs must not exceed $1, where each offer costs $10, the DBC will not warn, but will
clearly not be able to find a solution.
Global constraints are specified in the same way as per outcome constraints. They are applied to the
totals for all outcomes.
Outcome element
There is an outcome element for each contact optimization outcome to be predicted. It contains a name
attribute which is used as the label of the outcome predicted in the final contact optimization model.
Unit element
Outcome per-customer (or unit) estimates for the cost and value of that contact on a per customer basis.
Unit value element
Portrait Optimizer User Guide
21
Input parameter reference
Outcome per unit value is indicated by a fragment of FDL (possibly just a field name or literal value)
such that each record in the modeling dataset indicates the expected value in treating the customer.
Typically this will be something like propensity to respond * expected response rate, but the DBC makes
no assumptions.
Unit cost element
Outcome per unit cost is optionally indicated by a numeric value only. Note that there is no 'global' cost
setting; if an outcome has a cost it must be specified in the outcome otherwise the cost is assumed to
be zero.
22
Portrait Optimizer 7.1
Portrait Optimizer outputs
In this section:
•
•
•
•
•
Portrait Optimizer outputs . . . . . . . . . . . . . . . . . . . . . . . . .24
Contact optimization result file . . . . . . . . . . . . . . . . . . . . .24
Forecast report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
Portrait Optimizer model . . . . . . . . . . . . . . . . . . . . . . . . . .25
Portrait Dialogue deployment . . . . . . . . . . . . . . . . . . . . . .25
5
Portrait Optimizer outputs
Portrait Optimizer outputs
Portrait Optimizer creates its results in a single contact optimization results ('.qsor') archive which contains
a number of separate result files. These include:
• An XML-based contact optimization result file.
• An HTML-based contact optimization forecast report.
• A QMML-based contact optimization model file.
Contact optimization result file
The result file that is produced is an annotated copy of the input parameters specification file. It has the
same format as the parameters file but also includes a set of result elements, which are added to each
of the separate outcome elements and to the outcomes element.
An outcome result element provides information on the total outcome-based predicted cost, value,
number eligible for this outcome and number actually targeted by the optimization and the name of the
enablement field derived in the resulting model with the optimal value cutoff.
The global (or rather outcomes element) results contain the same information but accumulated for all
outcomes with the exception of the enablement field and cutoffs.
The result file can be used as the input parameters file for Portrait Optimizer.
Forecast report
The forecast report is displayed as part of the Portrait Optimizer wizard and is an HTML-formatted version
of the contents of the XML-based results file. It shows the results of the contact optimization model in
terms of quantities actually contacted for each outcome (and the campaign as a whole) and how this
affects overall Cost, Revenue and Profit measures. For each summary measure, the average per piece
is displayed alongside the summary value.
24
Portrait Optimizer 7.1
Chapter 5: Portrait Optimizer outputs
Portrait Optimizer model
The deployable result of Portrait Optimizer is a model described in Portrait's XML-based model markup
language. This compiled QMML file, ultimately contains a rule that determines the appropriate outcome
for any given input (in terms of one of the outcome names). This QMML has additional required inputs
corresponding to each of the outcomes allowing outcomes to be dynamically enabled or disabled at
deploy time.
Portrait Dialogue deployment
A set of Portrait Miner Data-Build Commands (DBCs) are provided with Portrait Optimizer which manipulate
the contact optimization result (.qsor) archive and deploy these results within Portrait Dialogue. The
commands all require explicit -username and -password arguments, unless Windows Authentication is
enabled in Portrait Dialogue for your user account.
cmsoptpublish
Deploy a contact optimization result to a Portrait Dialogue Customer Domain with a given name and
description.
Synopsis
cmsoptpublish -domain <domain name>-name <optimization name>
-description <text | @filename>-input <QSOR file>
[-password <password>][-replace][-username <username>]
Optional arguments
Option
Effect
-password <password>
The password for Portrait Dialogue deployment.
Portrait Optimizer User Guide
25
Portrait Dialogue deployment
Option
Effect
-replace
Replace the details for an existing optimization
rather than publish a new one. When replacing, the
-description parameter is optional.
-username <username>
The username for Portrait Dialogue deployment.
cmsoptlist
List the contact optimizations in a Portrait Dialogue Customer Domain.
Synopsis
cmsoptlist -domain <domain name>
[-password <password>] [-username <username>][-xml]
Optional arguments
Option
Effect
-password <password>
The password for Portrait Dialogue deployment.
-xml
Show output in XML format.
-username <username>
The username for Portrait Dialogue deployment.
cmsoptretrieve
Get a single contact optimization from a Portrait Dialogue Customer Domain and save it to a contact
optimization result archive.
Synopsis
cmsoptretrieve -domain <domain name> -name <optimization name>
-output <QSOR file>
[-password <password>] [-username <username>]
Option
Effect
-password <password>
The password for Portrait Dialogue deployment.
-username <username>
The username for Portrait Dialogue deployment.
cmsoptreport
Get a single contact optimization report from a Portrait Dialogue Customer Domain and save it to a file.
Synopsis
cmsoptreport -domain <domain name> -name <optimization name>
-output <HTML file>
[-password <password>] [-username <username>]
Optional arguments
26
Portrait Optimizer 7.1
Chapter 5: Portrait Optimizer outputs
Option
Effect
-password <password>
The password for Portrait Dialogue deployment.
-username <username>
The username for Portrait Dialogue deployment.
cmsoptdescribe
Get the parameters of a single contact optimization report from a Portrait Dialogue Customer Domain.
It also shows how the rule input-mappings will apply, by describing the mapping to a field or function, if
a mapping is defined.
Synopsis
cmsoptdescribe -domain <domain name> -name <optimization name>
[-password <password>] [-username <username>]
Optional arguments
Option
Effect
-password <password>
The password for Portrait Dialogue deployment.
-username <username>
The username for Portrait Dialogue deployment.
Portrait Optimizer User Guide
27
Administration and
configuration
In this section:
•
•
•
•
Configuring site specific default parameters . . . . . . . . . .30
Missing value treatment . . . . . . . . . . . . . . . . . . . . . . . . . . .30
Cases when optimization can fail . . . . . . . . . . . . . . . . . . .30
Convergence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
6
Configuring site specific default parameters
Configuring site specific default parameters
A file (defaultParams.xml) specifying the default parameters for decision optimization is included in
the Decision Optimizer installation directory (<PMHOME>/ext/decisionoptimizer).
Missing value treatment
Customers with missing values for their revenue predictions are excluded from the contact optimization
model build. Converting these missing values to 0 is one way to include them in the analysis.
Cases when optimization can fail
There are cases where it is not possible to compute the optimization for a particular outcome because
there are no 'values' or no spread of values. This can occur if the combination of global and outcome
eligibility result in zero (or just one) non null 'value' records. It can also occur if the value is constant and
dithering has been set to 0. In both of these cases the outcome and its constraints will be ignored and
no 'result' will be produced for that particular outcome.
Convergence
Simplex convergence is based on simplex 'size' rather than the function value.
Within the simplex value function, out of bound cutoff values are penalized subtly at first but then harshly
as they become more out of bounds. It is important to allow out of bounds values, otherwise records
with min or max value will be unlikely to be included or excluded (the algorithm is unlikely to hit the min
or max exactly) but we need somemechanism to steer the simplex back to the value range.
Within the simplex value function, penalties are based on the maximum value of all value models.
Internal derivations use an initial seed of 1 and increment the seed on each use. The DBC is therefore
deterministic. Note that different seeds are used for each derivation when dithering so an individual
record will not be uniformly better or worse for all value models.
30
Portrait Optimizer 7.1