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 401在API URL上带有声明性Http客户端,并带有@Secured(SecurityRule.IS_ANONYMOUS)注释   java如何在Android中创建计时器?   Java8WebStart安全弹出窗口   java会通过以下两种方式导致堆空间耗尽吗?   java项目调度GA:染色体的高效数据结构   java Apache POI:如何在Excel文件中插入列   java在JRE系统库中每个jar扮演什么角色   java如何在抽象类中执行@mock(不是注入mock)   java如何使用opensearch和Lucene发送搜索查询?   java在ApachePOI中处理空列   java广播接收器未接收到目标   java错误ELF类:ELF类64(可能原因:体系结构字宽不匹配)   java调用Web服务(SSL)时出错   用于iot集线器设备固件更新的java Rest API   通过xslt将xml转换为文本文件时引发java异常   Java linux打印问题   Java XML转换器重复行   java从另一个类的方法将数组导入mainActivity类   多线程选择与Java交互的线程   我想在java程序中打印以下格式的文件: