mapfw的API客户端挑战

mapfw的Python项目详细描述


MAPFW客户端

这是https://mapfw.nl/MAPFW问题的客户端库

MAPFW问题

MAPFW是“Multi-agent pathfinding(with)waypoints”的缩写。 对于MAPFW问题,将为您提供:

  • 网格/迷宫
  • 代理起始位置列表
  • 代理目标位置列表
  • 代理航路点列表

这个问题的解决方案是一个路径列表,每个代理st对应一个路径

  • 每个路径从相应代理的起始位置开始
  • 每条路径都以相应代理的目标位置结束
  • 每条路径穿过相应代理的所有航路点
  • 没有路径穿过网格中的墙
  • 没有两个探员在同一时间处于同一位置
  • 没有两个探员能同时穿过同一条边(在相反的方向) 当没有其它解st时,该解是最优解,所有agent的路径长度之和小于该解。在

使用客户端库

安装库时使用:

pip install mapfw

然后转到https://mapfw.nl/benchmarks/。在这里你可以找到一个基准列表。如果您单击基准测试,您可以看到预先发布的解决方案。通过单击解决方案,您可以看到问题的样子。找到一个你喜欢的问题,并在https://mapfw.nl/benchmarks/页上找到它的索引(抱歉,您必须从1开始计算自己的数量。稍后会改变)。在

现在转到您的帐户页https://mapfw.nl/auth/account。查找API令牌

这是开始编码所需的全部信息。代码的基本大纲应该如下所示:

^{pr2}$

你唯一需要做的就是填上

  • 你自己的API令牌
  • 要求解的基准的编号
  • 算法的名称
  • 它的版本。以及调试模式。(当您开发算法时,这应该设置为True。这意味着你的尝试不会出现在全球领导委员会上。但是您仍然可以在https://mapfw.nl/auth/latest-debug上看到自己的解决方案。)
  • 你的解算器函数
  • 要用于此基准测试的核心数量(默认值=1)。对于所有核心,使用-1)

你应该自己实现“解算器”功能。 此函数应接受问题并返回解决方案。 此功能的基本概述如下:

classAgent:def__init__(self,start,goal,waypoints):self.start=startself.goal=goalself.waypoints=waypointsclassMaze:def__init__(self,grid,width,height):self.grid=gridself.width=widthself.height=heightdefsolve(problem):number_of_agents=len(problem.starts)agents=[]foriinrange(number_of_agents):agents.append(Agent(problem.starts[i],problem.starts[i],problem.goals[i],problem.waypoints[i]))maze=Maze(problem.grid,problem.width,problem.height)paths=[]foragentinagents:paths.append(find_path(agent,maze))"""    Now paths looks like:    paths = [path agent 1, path agent 2, ..]    path agent 1 = [pos agent 1 at time 0, pos agent 1 at time 1, .., pos agent 1 at finishing time]    pos = [x coordinate, y coordinate]    """returnpaths

同时运行多个基准测试也是可能的。 您也可以将iterable赋给MapfwBenchmarker构造函数,而不是将一个整数作为基准索引。 有效用途包括:

在debug on 1 core中运行基准测试3,使用解算器solve,算法测试算法和版本测试版本:

MapfwBenchmarker("<YOUR API TOKEN>",3,"TestAlgotithm","TestVersion",True,solver=solve,cores=1)

在3个核心上调试时,使用解算器solve,算法测试算法和版本测试版本,运行基准测试1、2和3:

MapfwBenchmarker("<YOUR API TOKEN>",[1,2,3],"TestAlgotithm","TestVersion",True,solver=solve,cores=3)

使用solversolve、算法TestAlgorithm和version TestVersion运行基准测试1、2和3,作为对所有核心的真正尝试:

MapfwBenchmarker("<YOUR API TOKEN>",range(1,4),"TestAlgotithm","TestVersion",False,solver=solve,cores=-1)

如果需要基准测试的所有索引的列表,可以使用get_all_benchmarks函数。 作为参数,您可以添加索引,或者您不想运行的基准的索引列表

frommapfwimportget_all_benchmarksall_benchmarks=get_all_benchmarks()without_benchmark_3=get_all_benchmarks(without=3)without_benchmark_2_and_4=get_all_benchmarks(without=[2,4])

准备好后,将调试模式设置为False。下次运行代码时,您的尝试将被公开列出。在

这应该是所有你需要知道的开始! 请注意,这只是一些示例代码,您可以随意更改它。在

祝你好运!如果你有任何问题请告诉我们。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java无法从spring resttemplate访问sms网关   使用spark上下文方法参数的java并行化集合不正确   java中ReadLock的并发检查副本   java基于属性比较两个列表是否具有相同的元素   字符串Java文本块:缩进前缀中的制表符和空格的混合   java如何将带有@SpringBootApplication的maven模块作为测试范围中的依赖项添加到另一个maven模块   我需要一些关于在Java中使用2个jar文件的帮助   mysql JPA Java Spring Boot执行查找/连接表   java对话框选择具有特定名称的文件   java如何修复Spring工具套件4中的端口8080错误?   Java中的apache poi Excel阅读器   java如何在tomcat访问日志中记录线程上下文值   java有一种方法可以创建类<T>的实例,该类将类作为传递泛型的构造函数中的参数   默认情况下,java GORM onetomany映射执行即时抓取   java不能在安卓中接受全局变量   统计系统的java MongoDB异步驱动程序排名   java如何解析:无法解析插件“org.springframework.ide.eclipse.ui”?   用Java从一副牌中随机抽取5张牌   javaapachecamel动态消费者   java如何克服使用Flood Fill 4算法时的“薄边界”问题?