[Quantproject-developers] QuantProject/b1_ADT/Optimizing/BruteForce BruteForceOptimizer.cs, 1.3, 1.
Brought to you by:
glauco_1
|
From: Glauco S. <gla...@us...> - 2008-03-26 00:46:42
|
Update of /cvsroot/quantproject/QuantProject/b1_ADT/Optimizing/BruteForce In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv9522/b1_ADT/Optimizing/BruteForce Modified Files: BruteForceOptimizer.cs Log Message: - the read only property public BruteForceOptimizableParameters[] TopBestParameters has been added - a new parameter int numberOfTopBestParameters has been added to the constructor Index: BruteForceOptimizer.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b1_ADT/Optimizing/BruteForce/BruteForceOptimizer.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** BruteForceOptimizer.cs 7 Oct 2007 13:12:13 -0000 1.3 --- BruteForceOptimizer.cs 26 Mar 2008 00:46:38 -0000 1.4 *************** *** 34,44 **** private IBruteForceOptimizableParametersManager bruteForceOptimizableParametersManager; private int numberOfAnalizedItemsForNewProgess; private int totalNumberOfItemsToBeAnalized; ! private BruteForceOptimizableParameters bestParameters; private int analizedItems; public event NewProgressEventHandler NewProgress; --- 34,47 ---- private IBruteForceOptimizableParametersManager bruteForceOptimizableParametersManager; + private int numberOfTopBestParameters; private int numberOfAnalizedItemsForNewProgess; private int totalNumberOfItemsToBeAnalized; ! // private BruteForceOptimizableParameters bestParameters; ! private BestParametersManager bestParametersManager; private int analizedItems; + private bool runIsComplete; public event NewProgressEventHandler NewProgress; *************** *** 46,59 **** public BruteForceOptimizableParameters BestParameters { ! get { return this.bestParameters; } } public BruteForceOptimizer( ! IBruteForceOptimizableParametersManager bruteForceOptimizableParametersManager ) { this.bruteForceOptimizableParametersManager = bruteForceOptimizableParametersManager; this.numberOfAnalizedItemsForNewProgess = 100000; this.totalNumberOfItemsToBeAnalized = 0; } #region Run --- 49,84 ---- public BruteForceOptimizableParameters BestParameters { ! get { return this.TopBestParameters[ 0 ]; } ! } ! public BruteForceOptimizableParameters[] TopBestParameters ! { ! get ! { ! if ( !this.runIsComplete ) ! throw new Exception( "This property cannot be invoked until " + ! "the Run execution is complete!" ); ! return this.bestParametersManager.TopBestParameters; ! } } + + /// <summary> + /// Optimizer that enumerates all possible parameter values + /// </summary> + /// <param name="bruteForceOptimizableParametersManager"></param> + /// <param name="numberOfTopBestParameters">number of the best + /// optimizable parameters to be returned by the TopBestParameters + /// property</param> public BruteForceOptimizer( ! IBruteForceOptimizableParametersManager bruteForceOptimizableParametersManager , ! int numberOfTopBestParameters ) { this.bruteForceOptimizableParametersManager = bruteForceOptimizableParametersManager; + this.numberOfTopBestParameters = numberOfTopBestParameters; + this.numberOfAnalizedItemsForNewProgess = 100000; this.totalNumberOfItemsToBeAnalized = 0; + this.runIsComplete = false; } #region Run *************** *** 70,91 **** } } ! /// <summary> ! /// executes the optimization ! /// </summary> ! public void Run() { this.analizedItems = 0; this.bruteForceOptimizableParametersManager.Reset(); ! this.bestParameters = ! (BruteForceOptimizableParameters)this.bruteForceOptimizableParametersManager.Current; while( this.bruteForceOptimizableParametersManager.MoveNext() ) { BruteForceOptimizableParameters bruteForceOptimizableParameters = (BruteForceOptimizableParameters)this.bruteForceOptimizableParametersManager.Current; ! if ( this.bestParameters.Fitness < bruteForceOptimizableParameters.Fitness ) ! this.bestParameters = bruteForceOptimizableParameters; this.handleProgress(); } } public void Run( int numberOfAnalizedItemsForNewProgess , int totalNumberOfItemsToBeAnalized ) --- 95,142 ---- } } ! ! #region Run ! // private void handleCurrentOptimizableParameters( ! // BruteForceOptimizableParameters bruteForceOptimizableParameters ) ! // { ! // if ( !this.topBestParameters.IsFull ) ! // // this.topBestParameters still contains less than ! // // this.numberOfTopBestParametersToBeReturned items. It means that we are still in ! // // the initializing phase, when the first this.numberOfTopBestParametersToBeReturned ! // // items are to be added to the topBestParameters ! // this.topBestParameters.Analize( bruteForceOptimizableParameters ) ! // else if ( this.topBestParameters.LowestFitness < bruteForceOptimizableParameters.Fitness ) ! // this.updateTopBestParameters( bruteForceOptimizableParameters ); ! // } ! public void createTopBestParameters() { + this.bestParametersManager = new BestParametersManager( + this.numberOfTopBestParameters ); this.analizedItems = 0; this.bruteForceOptimizableParametersManager.Reset(); ! // this.bestParameters = ! // (BruteForceOptimizableParameters)this.bruteForceOptimizableParametersManager.Current; while( this.bruteForceOptimizableParametersManager.MoveNext() ) { BruteForceOptimizableParameters bruteForceOptimizableParameters = (BruteForceOptimizableParameters)this.bruteForceOptimizableParametersManager.Current; ! this.bestParametersManager.Analize( bruteForceOptimizableParameters ); this.handleProgress(); } } + /// <summary> + /// executes the optimization + /// </summary> + public void Run() + { + this.createTopBestParameters(); + // this.bestParametersManager.TopBestParameters.Sort(); + this.runIsComplete = true; + } + #endregion Run + + /// <summary> + /// executes the optimization + /// </summary> public void Run( int numberOfAnalizedItemsForNewProgess , int totalNumberOfItemsToBeAnalized ) |