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

📄 qiong.h

📁 用匈牙利算法解决二部图的最优匹配问题,可用于多任务的指派问题的解决.
💻 H
字号:
#ifndef __QIONG_H__ 
#define __QIONG_H__


class Qiong
{
public:
	Qiong(double min = 100000);
	~Qiong(){};
	//void Baixu();
	void He();
	double cost[7][7];
	int Result[7];
	double Min;
};
 Qiong::Qiong(double min)
{
	Min = min;
	for (int i = 0; i <= 7; i++) 
	{
		Result[i] = -1;
	}
}
 void Qiong::He()
{
	/*for (int i = 0; i < 10; i++) 
	{
		for(int j = 0; j!=i,j < 10; j++)
		{
			for (int k = 0;k!=i,k!=j,k<10;k++ ) {
			}
		}
	}*/
	int size = 7;
	int i[7];
	double sum ;
	

	double s[6];
	int count[7] ;
	for (int k = 0; k <7 ;k++) {
		count[k] = 0;
	}
	for(i[0] = 0; i[0] < size; i[0]++ )
	{  
		sum = 0;
		sum += cost[0][i[0]];
		s[0] = sum;
		              count[0]++;
					  double kkkkk = 0;

		for(i[1] = 0; i[1] < size ; i[1]++)
		{
			if ( i[1] != i[0]) 
			{
				sum = s[0] + cost[1][i[1]];
				s[1] = sum;
				           count[1]++;
				for(i[2] = 0; i[2] < size ; i[2]++)
				{
					if (i[2] != i[0] && i[2] != i[1])
					{
						sum = s[1] +cost[2][i[2]];
						s[2] = sum;
						    count[2]++;
						for (i[3] = 0; i[3] < size ; i[3]++)
						{
							if ( i[3] != i[0] && i[3] != i[1] && i[3] != i[2])
							{
								sum = s[2] +cost[3][i[3]];
								s[3] =sum;
								           count[3]++;
								for (i[4] = 0; i[4] < size ; i[4]++)
								{
									if (i[4] != i[0] && i[4] != i[1] && i[4] != i[2] && i[4] != i[3]) 
									{
										sum = s[3] +cost[4][i[4]];
										s[4] = sum;
										      count[4]++;
										for (i[5] = 0; i[5] < size ; i[5]++)
										{
											if (i[5] != i[0] && i[5] != i[1] && i[5] != i[2] && i[5] != i[3] && i[5] != i[4]) 
											{
												sum = s[4] + cost[5][i[5]];
												s[5] = sum;
												    count[5]++;
												for (i[6] = 0; i[6] < size ; i[6]++)
												{
													if (i[6] != i[0] && i[6] != i[1] && i[6] != i[2] && i[6] != i[3] && i[6] != i[4] && i[6]!=i[5]) 
													{
														sum = s[5] + cost[6][i[6]];
														count[6]++;
														if (sum <= Min) 
														{
															Min = sum;
															for (int j = 0; j < 7; j ++) 
															{
																Result[j] = i[j];
															}
														}
													}
													
												}
											}
											
										}
									}
								
								}
							}
							
						}
					}
					

				}
			}
			
			
		}
	
}
}

#endif

⌨️ 快捷键说明

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