Código fuente del algoritmo de coincidencia húngaro

Código fuente del algoritmo de coincidencia húngaro

Nota: Los pasos del método en los comentarios son ligeramente diferentes de los pasos del código fuente.

Para calcular la función principal coincidente, consulte la función main()

Las funciones y pasos involucrados en el archivo de encabezado son: Código fuente del algoritmo de coincidencia húngaro

class HungarianAlgorithm
{
public:
	HungarianAlgorithm();
	~HungarianAlgorithm();
	double Solve(vector <vector<double> >& DistMatrix, vector<int>& Assignment);

private:
	void assignmentoptimal(int* assignment, double* cost, double* distMatrix, int nOfRows, int nOfColumns);
	void buildassignmentvector(int* assignment, bool* starMatrix, int nOfRows, int nOfColumns);
	void computeassignmentcost(int* assignment, double* cost, double* distMatrix, int nOfRows);
	void step2a(int* assignment, double* distMatrix, bool* starMatrix, bool* newStarMatrix, bool* primeMatrix, bool* coveredColumns, bool* coveredRows, int nOfRows, int nOfColumns, int minDim);
	void step2b(int* assignment, double* distMatrix, bool* starMatrix, bool* newStarMatrix, bool* primeMatrix, bool* coveredColumns, bool* coveredRows, int nOfRows, int nOfColumns, int minDim);
	void step3(int* assignment, double* distMatrix, bool* starMatrix, bool* newStarMatrix, bool* primeMatrix, bool* coveredColumns, bool* coveredRows, int nOfRows, int nOfColumns, int minDim);
	void step4(int* assignment, double* distMatrix, bool* starMatrix, bool* newStarMatrix, bool* primeMatrix, bool* coveredColumns, bool* coveredRows, int nOfRows, int nOfColumns, int minDim, int row, int col);
	void step5(int* assignment, double* distMatrix, bool* starMatrix, bool* newStarMatrix, bool* primeMatrix, bool* coveredColumns, bool* coveredRows, int nOfRows, int nOfColumns, int minDim);
};

Enlace del disco de red:

链接:https://pan.baidu.com/s/141tcPcVfxABeERDvk853RQ 

Supongo que te gusta

Origin blog.csdn.net/qq_42835363/article/details/131520419
Recomendado
Clasificación