コード例 #1
0
ファイル: SOTA.java プロジェクト: SamGG/mev-tm4
  // returns the distribution of trainingNode memeber genes among left and right children
  private Dimension runNodeEpoch(SOTACell trainingNode) {

    SOTACell myCell = null;
    SOTACell sisterCell = null;
    int rightCnt = 0;
    int leftCnt = 0;
    int memberGene = 0;

    // for all genes in the training node, find closest child, migrate child
    for (int geneNum = 0; geneNum < trainingNode.members.size(); geneNum++) {

      memberGene = ((Integer) trainingNode.members.elementAt(geneNum)).intValue();

      myCell = findMyDaughterCell(trainingNode, memberGene); // only look among children
      // dont add to membership

      // later make sure that left and right membership set is not null
      if (myCell == trainingNode.left) leftCnt++;
      else rightCnt++;

      myCell.migrateCentroid(memberGene, migW);

      sisterCell = findSister(myCell);

      // if sister has no offspring then migrate parent and sister
      if (sisterCell.left == null && sisterCell.right == null) {
        myCell.parent.migrateCentroid(memberGene, migP);
        sisterCell.migrateCentroid(memberGene, migS);
      }
    }
    return new Dimension(leftCnt, rightCnt);
  }