优化
更改优化环境
./change.sh yh
用于将球场由比赛环境改为优化环境
./change.sh hy
用于将球场由优化环境改为比赛环境
安装Python环境
sudo apt-get update
更新源地址
sudo apt-get install python3
安装Python3环境
sudo python3 -V
查看已安装版本
sudo apt-get install python-pip
安装pip
sudo pip install XXX
使用pip安装模块
启动优化脚本
首先进入到项目的optimization
目录,阅读README.md
文档,查看用法。
./sample_start-optimization.sh 1 ../paramfiles/defaultParams_t1.txt out
启动优化脚本
使用cma-es
- 遗传算法思想
- 求y=(x-1)^2的最小值
- 复杂函数求极值
踢球场景切换为优化模式
优化过程详解
- 说明optimization/sample_start-optimization.sh
开始优化
1.优化脚本详解(robocup.py)
import cma
import os
std_list =[21.878452192908963,
-107.2655684773586,
-46.03084224893723,
122.50096005151583,
36.70802042526406,
74.34964372370875,
-23.35326324263892,
-1.411851711850464,
4.8436144712052585,
-12.878536016473056,
8.73474032972045,
-2.0087222938685585,
2.4649510821897755,
-0.19721363030046984,
-0.07855676227334851,
7.790202814460635,
5.980745105156915,
0.60539945683587]
#[11.6140517708,-4.9171027329,0.3251961719,-2.496460126,4.1228343724,4.8159507012,27.8958518161,34.1181422294,2.547294129,-3.247463629,-9.7463724405,-18.8513479245,0.2107818939,-2.8414504055,-0.6188735371,-8.6481949996,58.3129345744,58.8881654843,6.4995162332,14.6678754125,-0.2613845865,-0.0358574055]
#[-2.0087222938685585,2.4649510821897755,-10,-10,5,5,10,5,5,-10,-10,5,5,10,-10,5,-5,5,-0.223707187448,-0.0722786582128]
#[11.6140517708,-4.9171027329,0.3251961719,-2.496460126,4.1228343724,4.8159507012,27.8958518161,34.1181422294,2.547294129,-3.247463629,-9.7463724405,-18.8513479245,0.2107818939,-2.8414504055,-0.6188735371,-8.6481949996,58.3129345744,58.8881654843,6.4995162332,14.6678754125,-0.2613845865,-0.0358574055]
def writeToFile(paramList, filePath):
file = open(filePath, 'r+')
paramLines = file.readlines()
file.close()
paramNames = [i.split()[0] for i in paramLines]
newLines = []
for i in range(len(paramNames)):
newLines.append(paramNames[i] + '\t' + str(paramList[i]) + '\n')
file = open(filePath, 'w+')
file.writelines(newLines)
file.close()
def run(paramList, roboType, absPath):
writeToFile(paramList, '../paramfiles/optimizing.txt')
command1 = './sample_start-optimization.sh {0} {1} ./out'.format(roboType, absPath)
os.system(command1)
command2 = 'pkill -9 rcss'
os.system(command2)
file = open('./out')
lines = file.readlines()
file.close()
os.remove('out')
rst = lines[0]
print("rst: ",rst)
return float(rst)
def eva(ind):
paramList = []
for x in range(0, len(ind)):
paramList.append(ind[x] * std_list[x])
score = run(paramList, 1, '../paramfiles/optimizing.txt')
file = open('./out2', 'a')
newLines = []
for i in range(len(paramList)):
newLines.append(str(paramList[i]) + ',')
newLines.append(str(score) + '\n')
file.writelines(newLines)
file.close()
return 30-score
cma.fmin(eva, len(std_list)*[1.1], 0.3)