python中的多面体和多面体操作

pypoman的Python项目详细描述


这个库对convex polyhedra这样的 作为polytope projectiondouble description(之间的转换 半空间和顶点表示),计算Chebyshev center, 等

有关详细信息,请参见完整的API documentation

示例

顶点计数

我们可以计算半空间中描述的多面体的顶点列表 由A * x <= b

表示
importnumpyimportpypomanA=numpy.array([[-1,0,0,0,0,0,0,0,0,0,0,0],[0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,-1,0,0,0,0,0,0,0,0,0],[0,0,0,-1,0,0,0,0,0,0,0,0],[0,0,0,0,-1,0,0,0,0,0,0,0],[0,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,-1,0,0,0,0,0],[0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,-1,0,0,0],[0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,-1,0],[0,0,0,0,0,0,0,0,0,0,0,-1],[1,1,1,0,0,0,0,0,0,0,0,0],[0,0,0,1,1,1,0,0,0,0,0,0],[0,0,0,0,0,0,1,1,1,0,0,0],[0,0,0,0,0,0,0,0,0,1,1,1],[1,0,0,1,0,0,1,0,0,1,0,0],[0,1,0,0,1,0,0,1,0,0,1,0],[0,0,1,0,0,1,0,0,1,0,0,1]])b=numpy.array([0,0,0,0,0,0,0,0,0,0,0,0,2,1,2,2,1,2,3])vertices=pypoman.compute_polytope_vertices(A,b)

多面体投影

让我们在x = [x_1 ... x_n]上投射一个n维多面体到它的 前两个坐标proj(x) = [x_1 x_2]

importpypomanfromnumpyimportarray,eye,ones,vstack,zerosn=10# dimension of the original polytopep=2# dimension of the projected polytope# Original polytope:# - inequality constraints: \forall i, |x_i| <= 1# - equality constraint: sum_i x_i = 0A=vstack([+eye(n),-eye(n)])b=ones(2*n)C=ones(n).reshape((1,n))d=array([0])ineq=(A,b)# A * x <= beq=(C,d)# C * x == d# Projection is proj(x) = [x_0 x_1]E=zeros((p,n))E[0,0]=1.E[1,1]=1.f=zeros(p)proj=(E,f)# proj(x) = E * x + fvertices=pypoman.project_polytope(proj,ineq,eq,method='bretl')if__name__=="__main__":# plot projected polytopeimportpylabpylab.ion()pylab.figure()pypoman.plot_polygon(vertices)

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

推荐PyPI第三方库


热门话题
NetBeans中的Java Swing滚动窗格   java如何与具有复合键的表建立关系?   Android中读取文件时java数据丢失   java黄瓜场景。embed在ubuntu机器上不工作?   java从spring mvc控制器操作中,我如何获得请求/响应的访问权限?   java减去两个长值   java选择下一个值firebase 安卓   用于起始和结尾连字符的java正则表达式   Java正则表达式解释   java Lifefay freemarker ADT:方法不可用?   java我怎样才能让我的开关盒作用于JFrame?   java在我的场景中使用连接池的理想方式是什么   java我如何接受jsoup的cookies?   java如何将整数数组更改为字符串数组?   java Android操作\u指针\u向上直到剩余触摸移动时才调用   java为什么gradle会出错?   io如何在java中复制/拆分输入流?   java使JButton不可见,但尊重其原始空间   java Spring提交表单获取复选框值不起作用