当前位置: 首页>>代码示例>>C++>>正文


C++ Simplex::setval方法代码示例

本文整理汇总了C++中Simplex::setval方法的典型用法代码示例。如果您正苦于以下问题:C++ Simplex::setval方法的具体用法?C++ Simplex::setval怎么用?C++ Simplex::setval使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Simplex的用法示例。


在下文中一共展示了Simplex::setval方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: solmax

// renvoie vide si le systËme lineaire I(v,R,S,precision) n'a pas de solution et
// sinon renvoie une solution de I i.e. un  ensemble de variables X_q telles que
// v^{-1}P = \sum_{q \in R} X_qP_q --  en rappelant que R[w]=q => P_q = w^{-1}P
// En prenant un maximum de max variables
RESULT PPRFA::solmax (T_ModeVariables modeVariables,
					  SFunc & solution,	// La solution
                      const Word & v,	// Le residuel a tester
                      const Sample & S,	// L'echantillon
                      Simplex & simplx,	// L'objet simplex qui permet de calculer la solution
                      double precision,	// La precision (sa signification depend du mode)
                      T_ModeReturn moderet,	// Le mode de retour : beg debut de l'arbre, end à la fin
                      T_ModeEpsilon modeeps,	// Le mode : epsfixed avec epsilon fixe, variable avec epsilon variable.
                      WordSet &W,	// L'ensemble de mots sur lesquels on teste,
									// doit contenirs les mots des √©tapes prÈcÈdentes
                      unsigned int max) const
{
    try
    {
		
        //    cout << "\t\tcreation du systeme" << endl;
		
        unsigned int i;
        int n;		// number of variables
        int err;
        WordSFunc::const_iterator q;
		
        // number of variables = number of states
        n = XR.size ();
		
		/*
		// ---------- Affichage de la liste de mots utilises --------------
          set<Word, ordre_mot>::const_iterator wy;
          map<Word, State>::const_iterator ri;
		  int compte = 1;
          cout << "\nliste de mots associes à " << v << " et à {";
          for (ri=XR.begin() ; ri != XR.end() ; ri++) {
            if (ri->first.empty())
				cout << "eps,";
            else
				cout << ri->first << ",";
          }
          cout << "}" << endl;
          for (wy = W.begin() ;  wy != W.end() ;wy++) {
            if (wy->empty())
				cout << "eps,";
            else
				cout << *wy << ",";
			if (!(compte++ % 10))
				cout << "\n";
          }
		  cout << "\nNombre de mots : " << W.size();
          cout << endl;
          // --------------------------------------------------------------
		*/
		
        // avec l'entree 0 on traite tous les mots
        if (max == 0)
            max = W.size () + 1;
		
        // inequations en <= (nb=ineq1), inequations en >= (nb=ineq2)
        // les inequations X_q >= 0 sont deja
        // prisent en comptent de manière implicite
        double s1;
        double s2;
        set< Word, ordre_mot >::const_iterator wi;
		
        double pvw = 0;	// v^{-1}P(w)
		
        s2 = S[v];
		
		// Initialisation du simplexe
		simplx.set_number_of_unknown_to(XR.size()+1);
		
		// sum of all Xi is equal to 1
		simplx.setparam(1,0); // --- la variable 1 est toujours epsilon ---
		simplx.setval(1);     //
        for (q = XR.begin (); q != XR.end (); q++)
            simplx.setparam(q->second+1,1);
		simplx.add_equality_constraint();
		// cout << "XR.size() = " << XR.size() << endl;
		
		
		// loop for each word :
		simplx.setparam(1,1); // --- la variable 1 est toujours epsilon ---
				
		i=0;
		for (wi = W.begin (); wi != W.end () && i <= max; wi++)
		{
			s1 = S[(v + *wi)];
			pvw = (double) s1 / (double) s2;
			simplx.setval(pvw);
			for (q = XR.begin (); q != XR.end (); q++)
			{
				s1 = S[q->first + *wi];
				simplx.setparam(q->second+1, (double) s1 / (double) S[q->first]);
			}
			simplx.add_absolute_constraint();
			++i;
		}
		
//.........这里部分代码省略.........
开发者ID:yogsototh,项目名称:DEES,代码行数:101,代码来源:pprfa_dees.cpp


注:本文中的Simplex::setval方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。