⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vertex.java

📁 马尔科夫模型的c语言实现
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		emissions[i] = initDistrib[i];	    }	    break;	case 2:	    for(int i = 0; i < emissions_2.length;i++) {		emissions_2[i] = initDistrib[i];	    }	    break;	case 3:	    for(int i = 0; i < emissions_3.length;i++) {		emissions_3[i] = initDistrib[i];	    }	    break;	case 4:	    for(int i = 0; i < emissions_4.length;i++) {		emissions_4[i] = initDistrib[i];	    }	    break;	}    }        public void lock()    {	if(vertexType == HMM.STANDARD) {	    vertexType = HMM.LOCKED;	}    }    public void normalizeEmissProbs(int alphabet)    {	double[] emiss = null;		switch(alphabet) {	case 1:	    emiss = emissions;	    break;	case 2:	    emiss = emissions_2;	    break;	case 3:	    emiss = emissions_3;	    break;	case 4:	    emiss = emissions_4;	    break;  	}	double sum = 0.0;	for(int i = 0; i < emiss.length; i++) {	    sum += emiss[i];	}	if(sum != 0.0) {	    for(int i = 0; i < emiss.length; i++) {		emiss[i] = emiss[i] / sum;	    }	}    }    public void normalizeTransProbs()    {	double sum = 0.0;	for(int i = 0; i < transitionList.size(); i++) {	    sum += ((Transition)transitionList.get(i)).probability;	}	if(sum != 0.0) {	    for(int i = 0; i < transitionList.size(); i++) {		((Transition)transitionList.get(i)).probability =  ((Transition)transitionList.get(i)).probability / sum;	    }	}    }        public void setInitialEmissionProbs(int distribType)    {	/* Initialize emission probabilities to zero for all possible emissions */	if(distribType == HMM.ZERO) {	    if(vertexType != HMM.START && vertexType != HMM.END) {		vertexType = HMM.SILENT;	    }	    for(int i = 0; i < emissions.length; i++) {		emissions[i] = 0.0;	    }	}	/* Initialize emission probabilities evenly for all possible emissions */	else if (distribType == HMM.EVEN) {	    vertexType = HMM.STANDARD;	    int nrEmissions = emissions.length;	    double initProb = (double)1/nrEmissions;	    for(int i = 0; i < emissions.length; i++) {		emissions[i] = initProb;	    }	}	/* Initialize emission probabilities randomly */	else if (distribType == HMM.RANDOM) {	    vertexType = HMM.STANDARD;	    int nrEmissions = emissions.length;	    double sum = 0;	    for(int i = 0; i < emissions.length; i++) {		double initProb = Math.random();		emissions[i] = initProb;		sum = sum + initProb;	    }	    for(int i = 0; i < emissions.length; i++) {		emissions[i] = emissions[i] / sum;	    }	    	}    }    public void setInitialEmissionProbs(int nr, int distribType)    {	switch(nr) {	case 1:	    /* Initialize emission probabilities to zero for all possible emissions */	    if(distribType == HMM.ZERO) {		if(vertexType != HMM.START && vertexType != HMM.END) {		    vertexType = HMM.SILENT;		}		for(int i = 0; i < emissions.length; i++) {		    emissions[i] = 0.0;		}	    }	    /* Initialize emission probabilities evenly for all possible emissions */	    else if (distribType == HMM.EVEN) {		vertexType = HMM.STANDARD;		int nrEmissions = emissions.length;		double initProb = (double)1/nrEmissions;		for(int i = 0; i < emissions.length; i++) {		    emissions[i] = initProb;		}	    }	    	    /* Initialize emission probabilities randomly */	    else if (distribType == HMM.RANDOM) {		vertexType = HMM.STANDARD;		int nrEmissions = emissions.length;		double sum = 0;		for(int i = 0; i < emissions.length; i++) {		    double initProb = Math.random();		    emissions[i] = initProb;		    sum = sum + initProb;		}		for(int i = 0; i < emissions.length; i++) {		    emissions[i] = emissions[i] / sum;		}			    }	    break;	case 2:	    /* Initialize emission probabilities to zero for all possible emissions */	    if(distribType == HMM.ZERO) {		if(vertexType != HMM.START && vertexType != HMM.END) {		    vertexType = HMM.SILENT;		}		for(int i = 0; i < emissions_2.length; i++) {		    emissions_2[i] = 0.0;		}	    }	    /* Initialize emission probabilities evenly for all possible emissions */	    else if (distribType == HMM.EVEN) {		vertexType = HMM.STANDARD;		int nrEmissions = emissions_2.length;		double initProb = (double)1/nrEmissions;		for(int i = 0; i < emissions_2.length; i++) {		    emissions_2[i] = initProb;		}	    }	    	    /* Initialize emission probabilities randomly */	    else if (distribType == HMM.RANDOM) {		vertexType = HMM.STANDARD;		int nrEmissions = emissions_2.length;		double sum = 0;		for(int i = 0; i < emissions_2.length; i++) {		    double initProb = Math.random();		    emissions_2[i] = initProb;		    sum = sum + initProb;		}		for(int i = 0; i < emissions_2.length; i++) {		    emissions_2[i] = emissions_2[i] / sum;		}			    }	    break;	case 3:	    /* Initialize emission probabilities to zero for all possible emissions */	    if(distribType == HMM.ZERO) {		if(vertexType != HMM.START && vertexType != HMM.END) {		    vertexType = HMM.SILENT;		}		for(int i = 0; i < emissions_3.length; i++) {		    emissions_3[i] = 0.0;		}	    }	    /* Initialize emission probabilities evenly for all possible emissions */	    else if (distribType == HMM.EVEN) {		vertexType = HMM.STANDARD;		int nrEmissions = emissions_3.length;		double initProb = (double)1/nrEmissions;		for(int i = 0; i < emissions_3.length; i++) {		    emissions_3[i] = initProb;		}	    }	    	    /* Initialize emission probabilities randomly */	    else if (distribType == HMM.RANDOM) {		vertexType = HMM.STANDARD;		int nrEmissions = emissions_3.length;		double sum = 0;		for(int i = 0; i < emissions_3.length; i++) {		    double initProb = Math.random();		    emissions_3[i] = initProb;		    sum = sum + initProb;		}		for(int i = 0; i < emissions_3.length; i++) {		    emissions_3[i] = emissions_3[i] / sum;		}			    }	    break;	case 4:	    /* Initialize emission probabilities to zero for all possible emissions */	    if(distribType == HMM.ZERO) {		if(vertexType != HMM.START && vertexType != HMM.END) {		    vertexType = HMM.SILENT;		}		for(int i = 0; i < emissions_4.length; i++) {		    emissions_4[i] = 0.0;		}	    }	    /* Initialize emission probabilities evenly for all possible emissions */	    else if (distribType == HMM.EVEN) {		vertexType = HMM.STANDARD;		int nrEmissions = emissions_4.length;		double initProb = (double)1/nrEmissions;		for(int i = 0; i < emissions_4.length; i++) {		    emissions_4[i] = initProb;		}	    }	    	    /* Initialize emission probabilities randomly */	    else if (distribType == HMM.RANDOM) {		vertexType = HMM.STANDARD;		int nrEmissions = emissions_4.length;		double sum = 0;		for(int i = 0; i < emissions_4.length; i++) {		    double initProb = Math.random();		    emissions_4[i] = initProb;		    sum = sum + initProb;		}		for(int i = 0; i < emissions_4.length; i++) {		    emissions_4[i] = emissions_4[i] / sum;		}			    }	    break;	}    }    public void setPreliminaryInitialEmissionProbs(int distribType)    {	/* Initialize emission probabilities to zero for all possible emissions */	if(distribType == HMM.ZERO) {	    if(vertexType != HMM.START && vertexType != HMM.END) {		vertexType = HMM.SILENT;	    }	    for(int i = 0; i < emissions.length; i++) {		emissions[i] = 0.0;	    }	    for(int i = 0; i < emissions_2.length; i++) {		emissions_2[i] = 0.0;	    }	    for(int i = 0; i < emissions_3.length; i++) {		emissions_3[i] = 0.0;	    }	    for(int i = 0; i < emissions_4.length; i++) {		emissions_4[i] = 0.0;	    }	}	/* Initialize emission probabilities evenly for all possible emissions */	else if (distribType == HMM.EVEN) {	    vertexType = HMM.STANDARD;	    int nrEmissions = emissions.length;	    double initProb = (double)1/nrEmissions;	    for(int i = 0; i < emissions.length; i++) {		emissions[i] = initProb;	    }	    nrEmissions = emissions_2.length;	    if(nrEmissions != 0) {		initProb = (double)1/nrEmissions;	    }	    else {		initProb = 0.0;	    }	    for(int i = 0; i < emissions_2.length; i++) {		emissions_2[i] = initProb;	    }	    nrEmissions = emissions_3.length;	    if(nrEmissions != 0) {		initProb = (double)1/nrEmissions;	    }	    else {		initProb = 0.0;	    }	    for(int i = 0; i < emissions_3.length; i++) {		emissions_3[i] = initProb;	    }	    nrEmissions = emissions_4.length;	    if(nrEmissions != 0) {		initProb = (double)1/nrEmissions;	    }	    else {		initProb = 0.0;	    }	    for(int i = 0; i < emissions_4.length; i++) {		emissions_4[i] = initProb;	    }	    	}	/* Initialize emission probabilities randomly */	else if (distribType == HMM.RANDOM) {	    vertexType = HMM.STANDARD;	    int nrEmissions = emissions.length;	    double sum = 0;	    for(int i = 0; i < emissions.length; i++) {		double initProb = Math.random();		emissions[i] = initProb;		sum = sum + initProb;	    }	    for(int i = 0; i < emissions.length; i++) {		emissions[i] = emissions[i] / sum;	    }	    nrEmissions = emissions_2.length;	    sum = 0;	    for(int i = 0; i < emissions_2.length; i++) {		double initProb = Math.random();		emissions_2[i] = initProb;		sum = sum + initProb;	    }	    for(int i = 0; i < emissions_2.length; i++) {		emissions_2[i] = emissions_2[i] / sum;	    }	    nrEmissions = emissions_3.length;	    sum = 0;	    for(int i = 0; i < emissions_3.length; i++) {		double initProb = Math.random();		emissions_3[i] = initProb;		sum = sum + initProb;	    }	    for(int i = 0; i < emissions_3.length; i++) {		emissions_3[i] = emissions_3[i] / sum;	    }	    nrEmissions = emissions_4.length;	    sum = 0;	    for(int i = 0; i < emissions_4.length; i++) {		double initProb = Math.random();		emissions_4[i] = initProb;		sum = sum + initProb;	    }	    for(int i = 0; i < emissions_4.length; i++) {		emissions_4[i] = emissions_4[i] / sum;	    }	    	}    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -