private void calcTransitWeight_NoGamma(TreeQualifier qualifier) {
        candidateMapAddRemove = new HashMap<Node, Integer>();
        candidateArrayAdd = new Node[addableList.size()];
        candidateArrayRemove = new Node[removableList.size()];
        addWeight = new double[addableList.size()];
        removeWeight = new double[removableList.size()];

        double weightSum = 0.0;
        int count = 0;
        double weightSum1 = 0.0;
        double weightSum2 = 0.0;
        double infoGain = 0.0;

        for (Node n : addableList) {
            // weight of a addable node is proportional to the infomation gain
            // on the unclassified list
            double gainAdded = qualifier.getInfoGainAdded(n);
//            if (gainAdded < 0.0){
//                System.out.print('+');
//            } 
            infoGain = Math.max(gainAdded, 0.0);
            addWeight[count] = infoGain;
            candidateMapAddRemove.put(n, count);
            candidateArrayAdd[count] = n;
            weightSum1 += infoGain;

            count++;
        }

        count = 0;
        for (Node n : removableList) {
            // weight of a removable node is reversely proportional to info gain of that node
            double gainRemoved = qualifier.getInfoGainRemoved(n);
//            if (gainRemoved < 0.0){
//                System.out.print('*');
//            } else if (gainRemoved > 0.0){
//                
//            } else {
//                System.out.print('@');
//            }
            infoGain = 1.0 / (Math.max(0.0, gainRemoved) + 0.01);
            removeWeight[count] = infoGain;
            candidateMapAddRemove.put(n, count);
            candidateArrayRemove[count] = n;
            weightSum2 += infoGain;
            count++;
        }

        if (weightSum1 == 0.0) {
            double uniform = 1.0 / addWeight.length;
            for (int i = 0; i < addWeight.length; i++) {
                addWeight[i] = uniform;
            }
        } else {
            for (int i = 0; i < addWeight.length; i++) {
                addWeight[i] /= weightSum1;
            }
        }

        if (weightSum2 == 0.0) {
            double uniform = 1.0 / removeWeight.length;
            for (int i = 0; i < removeWeight.length; i++) {
                removeWeight[i] = uniform;
            }
        } else {
            for (int i = 0; i < removeWeight.length; i++) {
                removeWeight[i] /= weightSum2;
            }
        }
    }