kangrouter传输服务优化器的python客户端。

kangrouter-p的Python项目详细描述


[![构建状态](https://travis-ci.org/thesolvingmachine/kangrouter-py.svg?branch=master)(https://travis ci.org/thesolvingmachine/kangrouter py)




请从[帐户](https://thesolvingmachine.com/account)页面获取。


考虑这样一个问题:
*在[garcia de orta医院](http://www.hgo.pt/)进行医疗预约后,带着[alberto caeiro]回家(https://en.wikipedia.org/wiki/fernando嫒u pessoa嫒alberto嫒u caeiro)。他准备13:00后离开医院,必须不迟于14:15到家。阿尔贝托坐在轮椅上,所以我们安排了5分钟的接送时间。
*在[brasileira]咖啡馆(https://en.wikipedia.org/wiki/fernando_u pessoa戋ricardo戋u reis)挑选[ricardo戋is],然后带他去海滩餐厅。他想不迟于12:15到那里。里卡多坐的是普通座位。

假设可供运输的车辆停在[sintra]内(https://en.wikipedia.org/wiki/sintra),有3个座位和2个轮椅空间。此外,司机必须在12:00到14:00之间有60分钟的午休时间。

此问题转换为以下对象:

`` python
问题={
"nbresources":2,
"jobs":[
{
"jobid":"在医院接艾伯托","origlat":"38.674921","origlon":"-9.175401","destlat":"38.716860",
"destlon":-9.162417",
"minStartTime":"13:00",
"maxEndTime":"14:15",
"pickupDuration":5,
"deliveryDuration":5,
"consumptions":[0,1]
},
{
"jobid":"带里卡多去海滩",
"origlat":"38.710835",
"origlon":"-9.142143",
"destlat":"38.634080",
"destlon":"-9.230549",
"maxendtime":"12:15",
"pickuptration":1,
"deliveryduration":1,
"consumptions":[1,0]
}
",
"车辆":[
{
"车辆ID":"12-AS-46"、
"Depotlat":"38.806842"、
"Depotlon":"-9.382556"、
"MinStartTime":"07:00"、
"MaxEndTime":"22:00"、
"MaxWorkduration":540、
"容量":[2,3]、
"中断":[
{
"breakid":"lunch"、
"minStartTime":"12:00"、
"maxendtime":"14:00"、
"duration":60
}
]、
"overspeed":1.25
}
]
}
````
有趣的问题有多个作业和多辆车,但是上面的示例应该足以让您继续进行。


licenseid)
solverid=api.create(problem)
```


检查求解状态

已完成。
*无效-问题无效,或者发生了意外错误。

所以解算器执行得非常快:


`` python
{
"execstatus":"已完成",
"nbjobsdiscarded":0,
"solverdentime":"11月18日星期三11:59:48 2015 GMT",
"solverstarttime":"11月18日星期三11:59:40 2015 GMT",
"totaldistance":98,
}
````

考虑到较大的问题可能需要几分钟时间,在解算器执行时调用此函数还将返回eta(预期交付时间)以完成。

解决方案的检索如下:

``python
solution=api.getsolution(solverid)
print(solution)
```

或者执行取货/送货操作:

`` python
{
"jobscheduled":[
{
"jobid":"在医院取货alberto",
"maxendtime":"14:15",
"maxstarttime":"13:55",
"minendtime":"13:20",
"minstarttime":"13:00",
"vehicleid":"12-as-46"
},
{
"jobid":"带里卡多去海滩"
"maxendtime":"12:15"
"maxstarttime":"11:59"
"minendtime":"11:14"
"minstarttime":"10:58"
"vehicleid":"12-as-46"
}
],
"type":"total",
"vehicles scheduled":[
{
"breaks":[
{
"breakid":"午餐",
"maxendtime":"13:55",
"maxstarttime":"12:55",
"minendtime":"13:00",
"minstarttime":"12:00"
}
],
"maxendtime":"14:35",
"maxstarttime":"11:38",
"minendtime":"13:40",
"minstarttime":"10:37",
"vehicleid":"12-as-46"
}
]
}
````
如果您赶时间,请使用:

``python
api.stop(solverid)
````


>并从服务器中删除解算器(以及相关数据):

``python
``api.delete(solverid)
```

参考](https://thesolvingmachine.com/kangrouter/doc/en/)
*[kangrouter API操场](https://thesolvingmachine.com/swagger/kangrouter/srv/)

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

推荐PyPI第三方库


热门话题
在java中将字符串转换为音频输入   java如何使用Spring Boot RestTemplate解组json列表   计算机上C++ OpenCV项目转换为OpenCV Android的java步骤   Java Spring Telegraf数据表不工作   openurlconnection与connect之间的java差异?   java Solr字段搜索、通配符和转义字符   java如何使用DLFolderLocalServiceUtil类的getFolders()方法?   尝试用Java编写文件   java连续双缓冲解决方案不起作用   两个数组的Java乘积   java Jackson,如何正确编写自定义反序列化程序   java将布尔标志按一定顺序排列以获得更好的性能是否有意义   java Vaadin无缓冲网格无法关闭   java在MySQL中以同一用户身份同时从不同客户端登录安全吗?   java如何使用安卓asynchttp库   java无法在Android中使用AlarmManager停止服务   java在Hibernate的XML配置文件中指定默认值   Spring启动应用程序中的java内存SQLITE不工作   Java代码无法写入文本文件,