我有一个问题,已经有效地减少到多个推销员的旅行推销员问题.我有一个从初始位置访问的城市列表,并且必须访问所有销售人员数量有限的城市.
我试图想出一个启发式,并想知道是否有人可以伸出援助之手.例如,如果我有20个城市有2个推销员,我想采取的方法是两步法.首先,将20个城市随机划分为10个城市,每个城市为2个销售人员,我会发现每个城市的旅行,好像它是独立的几次迭代.之后,我想交换或指定一个城市给另一个推销员并找到旅游.实际上,它是一个TSP,然后是最小的完工时间问题.问题在于它太慢了,交换或分配城市的邻里生成很难.
任何人都可以就如何改进上述内容提出建议吗?
编辑:
每个城市的地理位置都是已知的,销售人员在同一个地方开始和结束.目标是最小化最大行程时间,使这种最小完工时间问题.因此,例如,如果salesman1需要10个小时而salesman2需要20个小时,则最长行程时间为20个小时.
我遇到一个调用recv()系统调用没有阻塞的问题.我目前有一个客户端 - 服务器结构设置,我遇到的问题是我向服务器发送一条消息,而服务器设置为以下是这样的:
while (1) {
char buf[1024];
recv(fd, buf, sizeof(buf), flags);
processMsg(buf);
}
Run Code Online (Sandbox Code Playgroud)
它正确接收第一条消息,但recv()不会阻止和"接收"不是所需的垃圾数据.我只想在发送消息时才对消息做出反应.任何人都可以建议吗?
有没有办法找到仅使用位操作设置最少次数的位?
例如,如果我有三位数组:
11011001
11100000
11101101
Run Code Online (Sandbox Code Playgroud)
位置3和5中的位仅在三个矢量中的一个中设置为1.
我目前有一个o(n)
解决方案,其中n是比特阵列中的比特数,我在比特阵列中检查每个比特并在每次有1时增加,但由于某种原因,我认为有一个o(1)
解决方案,我可以用几个按位运算.任何人都可以建议吗?谢谢.
我正在浏览其他人的代码并遇到以下语法:
typedef struct abc {
abc() : member(0){}
unsigned int member
}
Run Code Online (Sandbox Code Playgroud)
它似乎是一个带有成员变量和构造函数的类,除了它被声明为struct.我这里有两个问题.
非常感谢提前.
PS:我如何格式化代码?