**Probability Distribution:** Fit (hyperlink button) for Probability Distribution. Clicking that button will execute the Param action and fit the Distribution within the Minimum and Maximum value of the Criterion.

**Input Flexibility:** Probability Decimal precision will be configurable by the user. At this moment, the user is forced to use a big enough probability that makes sense when it is expressed in 2 digits after the decimal. But, after the new feature, the user should be able to define any number of decimal digits for probability.

**Diagram Improvement:** Users will be able to pan around the diagram by mouse drag and move, without needing to use the scrollbar.

**Diagram Improvement:** New Style customization for the diagrams so that the user can change the color, font, border, shadow effect, etc. for all diagram elements. (Decision Tree, Influence Diagram, Bayesian Network, etc.). For example, on the Ribbon (Toolbar) for a diagram, there will be options like this:

**Custom Equation Support:** Allow the user to use the Custom Function for multi-criteria decision analysis. Currently, the user can evaluate a weight for an objective using Pairwise comparison, or direct evaluation. And then, the software applies that weight to get a combined utility value for the custom equation. But, the new idea is that, in addition to pairwise comparison, the user should be able to define a custom function like: = 3 * [Cost] + 5 * sqrt([Safety]) + ln(Comfort).

This custom function feature will be highly beneficial for the users who want to model a Random Dependent variable as a function of many independent random variables. Then, using the Monte Carlo Simulation, the user will get a probability distribution of the dependent random variable.

Not only for random variable Monte Carlo simulation, but the custom function will also open the door for any arbitrary multi-criteria utility function.

**Custom Equation Support:** Improve the Tokenizing User Interface in Markov Chain and Custom Equation for Multi-Criteria, so that the user will be able to drag and drop the objective names into the equation editor. The same should work for Markov Chain Custom Equation editor.

**Custom Equation Support: **Custom Metric Calculation using the user-defined equation. The user should be able to define a custom metric in terms of an independent random outcome, probability of that outcome and the total number of outcomes. So, using custom metric, say the user wants to get expected value, he/she will be able to define the metric as

sum(X * probability(X))

Another example:

sum(X)/n.

There will be many function names that can be used, like stddev(x), variance(x), sqrt(x) etc.

[Custom Equation editor for piecewise expression can be used]

**Bernoulli Utility Function for any input range:** For Bernoulli Utility Function, currently the software does not support any range of values for a criterion that has values less than 1. With this new feature, the software will smartly scale the generated Bernoulli utility function so that, the user won’t have to worry about any number range for an objective.

**Machine Learning:** Missing values will be handled.

Strategy for Machine Learning Missing Value

Ask the user to choose for each column that has a missing value.

1. Use Mean (if Continuous)

2. Use Mode (Recommended) [Default Check]

3. Custom Value: (Default to 'Unknown' or 0 for continuous) [Show a text box enabled, if the radio is checked]

4. Discard the value. {Experiment, how that can be useful}

Use Parallel programming to speed up machine learning.

**Machine Learning:** Showing Progress bar while generating a decision tree using Machine Learning. Currently, if a data file is huge, the software takes a very long time (which is usual) but, the user has no clue about how long the process will take, which can be frustrating. With the new feature, the user will be able to see the progress bar with a percentage value, and an estimated time left for completion.

**Machine Learning:** (Test and Confusion Matrix): The user will be able to choose a data source for performing tests against a generated decision tree. The user can also specify a percentage of data to be chosen randomly for learning purposes and testing purposes. Then, the software can validate the generated decision tree against that data source and generate a table of various performance metrics, confusion matrix, etc.

**Bayesian Inference:** Logging Belief Update Process for Diachronic Interpretation.