运筹系列38:优化软件测试包pyCUTEst

运筹系列38:优化软件测试包pyCUTEst1 介绍 pycutest 是一个 python 接口 CUTEst 一个用于测试优化软件的 fortran 包 它基于 interfaceori ArpadBuermen 目前支持 mac 和 linux 可以直接 pipinstallpy 安装 2 问题分类我们可以用 problem properties 函数来查看问题类型 以及使用 find problems 函数来寻找问题 分类标准参见 HockandSchit

1. 介绍

export PYCUTEST_CACHE="/path/to/pycutest_cache" export MYARCH=mac64.osx.gfo 

2. 问题分类

我们可以用problem_properties()函数来查看问题类型,以及使用find_problems() 函数来寻找问题。

  • 第一个字母:目标函数类型,包括:
    N:无目标函数
    C:常数目标函数
    L:线性目标函数
    Q:二次目标函数
    S:平方和目标函数(least square problem)
    O:其他












  • 第二个字母:约束条件类型,包括
    U:无约束
    X:仅有常量约束
    B:仅有bounds约束
    N:线性网络的邻接矩阵约束
    L:线性约束
    Q:二次约束
    O:其他














  • 第三个字母:问题连续性
    R:连续问题,且一阶导数和二阶导数存在(即Jacobbi和Hessian阵可计算)
    I:其他




  • 第四个数字:最多可微数目,为0, 1或2.
  • 第五个字母
    A:学术问题,构造出来用于测试算法
    M:没有实际意义的测试问题
    R:有实际应用的测试问题






  • 第六个字母表示是否包含隐变量,Y表示有,N表示没有
  • 第七个n表示变量的个数
  • 第八个m表示约束的个数(不包括bounds和固定变量)

3. 常用命令

在这里插入图片描述
下面是一个测试例子:

# Ensure compatibility with Python 2 from __future__ import print_function import numpy as np import pycutest p = pycutest.import_problem('ROSENBR') print("Rosenbrock function in %gD" % p.n) iters = 0 x = p.x0 f, g = p.obj(x, gradient=True) # objective and gradient H = p.hess(x) # Hessian while iters < 100 and np.linalg.norm(g) > 1e-10: print("Iteration %g: objective value is %g with norm of gradient %g at x = %s" % (iters, f, np.linalg.norm(g), str(x))) s = np.linalg.solve(H, -g) # Newton step x = x + s # used fixed step length f, g = p.obj(x, gradient=True) H = p.hess(x) iters += 1 print("Found minimum x = %s after %g iterations" % (str(x), iters)) print("Done") 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222724.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午3:07
下一篇 2026年3月17日 下午3:07


相关推荐

  • 求复数的对数[通俗易懂]

    求复数的对数[通俗易懂]其实除了0以外,复数是都可以求解对数的。用欧拉公式可以简单的得到结果。

    2025年6月27日
    4
  • 思科九年pdf_思科中国网站

    思科九年pdf_思科中国网站第1节:思科九年(1)  序  南半球的二月是盛夏。这里白天的阳光炽烈而持久,四处都是耀眼的惨白。电视里的广告说皮肤癌是这个国家的国癌,提醒人们小心这厉害的阳光:要穿长袖的衣服待在阴凉的地方,要戴墨镜涂防晒霜。即便如此,海边的沙滩上还是躺满了裸露大片皮肤晒日光浴的各色人种。他们慵懒地躺着趴着,戴着墨镜看书或者睡觉。他们的孩子在水边嬉戏,他们的狗在四处奔跑。海浪一层层涌来,冲浪者和他们的冲浪

    2022年8月21日
    9
  • Oracle trunc 函数用法详解

    Oracle trunc 函数用法详解trunc函数用法用于截取时间或者数值,返回指定的值一、截取时间selecttrunc(to_date(‘2018-02-011:00:00′,’YYYY-MM-DDHH:MI:SS’),’yyyy’)fromdual;–返回当年第一天selecttrunc(to_date(‘2018-02-011:00:00’,’YYYY-MM-DDHH:MI……

    2022年7月17日
    44
  • ODPS double类型转型精度问题总结

    ODPS double类型转型精度问题总结简介:ODPSdouble类型转型精度问题总结从相差0.0000000000001说起,本文主要是对odps的Double和Decimal的精度使用问题做一个总结。1.问题描述客户开发人员在使用maxcompute对double数据类型求和时出现错误(数据表由oracle数据库抽取到maxcompute,对应字段类型为number到double),正确的结果是1943.38,但求和结果为1943.3799999999999,结果相差了0.0000000000001,这个…

    2022年7月20日
    18
  • Mac下mysql不能远程访问问题

    Mac下mysql不能远程访问问题

    2021年5月14日
    147
  • 转:SIGPIPE[通俗易懂]

    转:SIGPIPE[通俗易懂]SIGPIPEsend或者writesocket遭遇SIGPIPE信号当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个…

    2022年5月30日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号