Project: Design a decision fusion tool to perform weighted fusion. The weights are adjusted using hill climbing algorithm. Introducing random walk/jump/restart or trying simulated annealing to improve performance is optional.
Menu Specification (minimum): Train & Decide
Train (this option will compute decision weights)
Input: the following data (read data from a text file containing only Y/N)
Decision 1 Decision 2 ………… Decision n-1 Decision n Actual Decision
Example 1 Y N ………… Y Y Y
Example 2 Y Y ………… Y N Y
…………….. …………….. …………….. ………… …………….. …………….. ……………..
Example m-1 N N ………… N N N
Example m N N ………… Y Y N
Output: W1, W2, …Wn-1, Wn where Wi is the decision weigh for decision i.
Algorithm:
1. Initialization: Randomly assign weights between 0 and 1 for each decision
2. Use the following formula to compute decision:
a. If ( WY > WN) the decision is Y else if ( WY < WN) the decision is N, where WY is the summation of all decision weights for the decision “Y”.
b. Use the following formula to compute accuracy:
Accuracy= v/m, where v number of decisions (computed in step 2a) that match with the actual decision
3. For i= 1 to n
Keep change (try increasing and decreasing) decision weight in small steps for decision i as long as accuracy improves
4. Repeat step 3 as long as accuracy improves
5. Output the finals weights W1, W2, …Wn-1, Wn (and store them)
Decide (This option will perform decision fusion and output the decision)
Input: Decision 1, Decision 2, … Decision n
Output: Y or N
Algorithm:
If ( WY > WN) the decision is Y else if ( WY < WN) the decision is N.