小编dus*_*zma的帖子

有多个推销员的旅行推销员?

我有一个问题,已经有效地减少到多个推销员的旅行推销员问题.我有一个从初始位置访问的城市列表,并且必须访问所有销售人员数量有限的城市.

我试图想出一个启发式,并想知道是否有人可以伸出援助之手.例如,如果我有20个城市有2个推销员,我想采取的方法是两步法.首先,将20个城市随机划分为10个城市,每个城市为2个销售人员,我会发现每个城市的旅行,好像它是独立的几次迭代.之后,我想交换或指定一个城市给另一个推销员并找到旅游.实际上,它是一个TSP,然后是最小的完工时间问题.问题在于它太慢了,交换或分配城市的邻里生成很难.

任何人都可以就如何改进上述内容提出建议吗?

编辑:

每个城市的地理位置都是已知的,销售人员在同一个地方开始和结束.目标是最小化最大行程时间,使这种最小完工时间问题.因此,例如,如果salesman1需要10个小时而salesman2需要20个小时,则最长行程时间为20个小时.

algorithm heuristics traveling-salesman

27
推荐指数
1
解决办法
1万
查看次数

C/C++套接字和非阻塞recv()

我遇到一个调用recv()系统调用没有阻塞的问题.我目前有一个客户端 - 服务器结构设置,我遇到的问题是我向服务器发送一条消息,而服务器设置为以下是这样的:

while (1) {
   char buf[1024];
   recv(fd, buf, sizeof(buf), flags);
   processMsg(buf);
}
Run Code Online (Sandbox Code Playgroud)

它正确接收第一条消息,但recv()不会阻止和"接收"不是所需的垃圾数据.我只想在发送消息时才对消息做出反应.任何人都可以建议吗?

c c++ sockets

13
推荐指数
2
解决办法
6万
查看次数

位操作问题

有没有办法找到仅使用位操作设置最少次数的位?

例如,如果我有三位数组:

11011001

11100000  
11101101
Run Code Online (Sandbox Code Playgroud)

位置3和5中的位仅在三个矢量中的一个中设置为1.

我目前有一个o(n)解决方案,其中n是比特阵列中的比特数,我在比特阵列中检查每个比特并在每次有1时增加,但由于某种原因,我认为有一个o(1)解决方案,我可以用几个按位运算.任何人都可以建议吗?谢谢.

bit

6
推荐指数
1
解决办法
1059
查看次数

有人可以解释这个C++语法吗?

我正在浏览其他人的代码并遇到以下语法:

typedef struct abc {

   abc() : member(0){}

   unsigned int member

}
Run Code Online (Sandbox Code Playgroud)

它似乎是一个带有成员变量和构造函数的类,除了它被声明为struct.我这里有两个问题.

  1. C语言是否支持此语法?
  2. 在类上使用结构的原因是什么?

非常感谢提前.

PS:我如何格式化代码?

c++

2
推荐指数
1
解决办法
259
查看次数

标签 统计

c++ ×2

algorithm ×1

bit ×1

c ×1

heuristics ×1

sockets ×1

traveling-salesman ×1