我想在Python中编写的函数R中进行优化。我已经知道scipy有优化函数,但我想要一些R中的函数但不是scipy。问题是我在Python脚本中有我的功能,这个功能需要一些其他信息来适应。因此,在Initalization中,python脚本导入一些文件并执行一些操作,这就是为什么我不想每次调用脚本因为这会降低性能。
为此,我尝试调用python脚本,然后使用套接字连接到它。这是我的R脚本(它还没有包括优化):
dataField
在我的python方面:
#Variables to initialize:
p_pos = '"[[0.,0.,True],[1.2378958026, 0,True],[0, 0.7152889725,True]]"'
names = '"[\'bridge\',\'hollow\',\'top\']"'
potential = "a-a"
symmetry = "non"
#Initialize python script
command = "python"
path2script='"Least_squares_potentials.py"'
#data pased to python
string = paste(p_pos, names, potential, symmetry, sep="---")
pattern = "---"
args = c(string, pattern)
# Add path to script as first arg
allArgs = c(path2script, args)
#Initialize
output = system2(command, args=allArgs, stdout=FALSE, wait=FALSE)
Sys.sleep(5)
client <- function(param){
while(TRUE){
con <- socketConnection(host="localhost", port = 6011, blocking=TRUE,
server=FALSE, open="r+")
response <- param
writeLines(response, con)
data <- readLines(con, 1)
print(data)
close(con)
}
}
#guess = "[3.589,3.995,1.418,1.809]"
guess = "[3.733,2.413,8]"
client(guess)
client("q")
这样做我得不到任何东西......好吧我得到了“\xadȊ\ xf3 = \ xd0Y @”而我不知道这是什么,等待了一段时间后。所以有人可以帮我解决这个问题吗?也许有另一种方法可以做到这一点,我不知道。任何帮助都将非常感激。