Changeset 153


Ignore:
Timestamp:
Nov 21, 2007 8:30:38 PM (14 years ago)
Author:
kingaj
Message:
 
Location:
stable/0.8/Smi/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • stable/0.8/Smi/src/SmiScnModel.cpp

    r152 r153  
    739739}
    740740
    741 
    742 
    743 
    744 
    745 
     741double SmiScnModel::getObjectiveValue(SmiScenarioIndex ns)
     742{
     743        const double *dsoln = this->getOsiSolverInterface()->getColSolution();
     744        const double *dobj  = this->getOsiSolverInterface()->getObjCoefficients();
     745
     746        /* calculate the scenario objective value */
     747        double scenSum = 0.0;
     748
     749        // start with leaf node
     750        SmiScnNode *node = this->getLeafNode(ns);
     751       
     752        while (node != NULL)
     753        {
     754                double nodeSum = 0.0;
     755                double nodeProb = node->getModelProb();
     756
     757                assert(nodeProb>0);
     758
     759                // getColStart returns the starting index of node in OSI model
     760                for(int j=node->getColStart(); j<node->getColStart()+node->getNumCols(); ++j)
     761                {
     762                        nodeSum += dobj[j]*dsoln[j];           
     763                }
     764                nodeSum /= nodeProb;
     765                scenSum += nodeSum;
     766       
     767                // get parent of node
     768                node = node->getParent();
     769        }
     770
     771        return scenSum;
     772}
     773
     774
     775
     776
     777
  • stable/0.8/Smi/src/SmiScnModel.hpp

    r152 r153  
    7171                                 SmiCoreCombineRule *r=NULL );
    7272
    73         SmiCoreData * getCore() {return core_;}
     73        //SmiCoreData * getCore() {return core_;}
    7474
    7575        /**@name Direct methods.
Note: See TracChangeset for help on using the changeset viewer.