static public void GenerateIndependentResult()
 {
     foreach (Sentence sentence in Variable.Sentences)
     {
         sentence.IndependentResult = new Result();
     }
     foreach (Label label in Variable.LabelArray)
     {
         //Variable.OutputFile.WriteLine("Start: " + Variable.LabelToString[label]);
         IList <double> Pdatas = new List <double>();
         Initialize(label);
         for (int time = 1; time <= Variable.ConvergeTimeThreshold; ++time)
         {
             //计算Pk
             NoGroupIDSVariable.Pj = CoreFunction.CalculatePj(NoGroupIDSVariable.Sij, time);
             //计算π
             NoGroupIDSVariable.PAkjl = CoreFunction.CalculatePAkjl(new Label[] { label }, NoGroupIDSVariable.Sij, time, -1);
             //计算Sij
             //if (CoreFunction.CalculatePdataAndSij(new Label[] { label }, ref NoGroupIDSVariable.Sij, NoGroupIDSVariable.Pj, NoGroupIDSVariable.Pajl, NoGroupIDSVariable.Mcj, ref NoGroupIDSVariable.Pdata, -1, Pdatas,
             //    new Dictionary<Tuple<Labelset, Labelset>, double>(), new Dictionary<Tuple<Character, Character>, IDictionary<Tuple<Labelset, Labelset>, double>>()))
             //{
             //    ObtainLabelResult(label);
             //    break;
             //}
         }
     }
     OutputResult();
 }
 static public void GenerateOneTreeForAllResult()
 {
     Initialize();
     for (int time = 1; time <= Variable.ConvergeTimeThreshold; ++time)
     {
         //计算Pk
         TDDSVariable.Pj = CoreFunction.CalculatePj(TDDSVariable.Sij, time);
         //计算π
         NoGroupDDSFunction.CalculatePAkjl(TDDSVariable.Sij, ref TDDSVariable.PAkjl);
         //计算Sij
         if (NoGroupDDSFunction.CalculatePdataAndSij(ref TDDSVariable.Sij, TDDSVariable.Pj, TDDSVariable.PAkjl, ref TDDSVariable.Pdata))
         {
             break;
         }
     }
     NoGroupDDSFunction.ObtainResult(TDDSVariable.Sij, "TreeForAll");
 }
 static public void GeneratePreciseResult()
 {
     Initialize();
     for (int time = 1; time <= Variable.ConvergeTimeThreshold; ++time)
     {
         //计算Pk
         NoGroupJDDSVariable.Pj = CoreFunction.CalculatePj(NoGroupJDDSVariable.Sij, time);
         //计算π
         NoGroupDDSFunction.CalculatePAkjl(NoGroupJDDSVariable.Sij, ref NoGroupJDDSVariable.PAkjl);
         //计算Sij
         if (NoGroupDDSFunction.CalculatePdataAndSij(ref NoGroupJDDSVariable.Sij, NoGroupJDDSVariable.Pj, NoGroupJDDSVariable.PAkjl, ref NoGroupJDDSVariable.Pdata))
         {
             break;
         }
     }
     NoGroupDDSFunction.ObtainResult(NoGroupJDDSVariable.Sij, "Precise");
 }
Exemple #4
0
 static public void GenerateOneTreeForSenResult()
 {
     Initialize();
     for (int time = 1; time <= Variable.ConvergeTimeThreshold; ++time)//其中几个函数可以和Dependent公用
     {
         //计算Pk
         DTDDSVariable.Pj = CoreFunction.CalculatePj(DTDDSVariable.Sij, time);
         //计算π
         NoGroupDDSFunction.CalculatePAkjl(DTDDSVariable.Sij, ref DTDDSVariable.PAkjl);
         //计算Sij
         if (NoGroupDDSFunction.CalculatePdataAndSij(ref DTDDSVariable.Sij, DTDDSVariable.Pj, DTDDSVariable.PAkjl, ref DTDDSVariable.Pdata))
         {
             break;
         }
     }
     NoGroupDDSFunction.ObtainResult(DTDDSVariable.Sij, "TreeForSen");
 }