问题

将如下一组数字从大到小排序。

{10, 20, -32, 177, 0, -11.5, 19, 7, 6.2, -6.28, -2.71, 44}

解决办法

建立数学模型,给出各个数字的次序值。

模型

设x[i]为第i个数的次序值。根据排序规则有如下约束:

x[i] <= x[j] -1 | i=1,...,n; j=1,...,n; i<>j; d[i] >d[j]

希望次序值从1开始,最大不超过数字的总数:

x[i] >= 1 | i=1,...,n

x[i] <= n | i=1,...,n

不需要目标:

max 0

最终模型为

  1. max 0
  2. subject to
  3. x[i] <= x[j] -1 | i=1,...,n; j=1,...,n; i<>j; d[i] >d[j]
  4. x[i] >= 1 | i=1,...,n
  5. x[i] <= n | i=1,...,n
  6. where
  7. n is a number
  8. d is a set
  9. x[i] is a variable of nonnegative integer| i=1,...,n
  10. data_relation
  11. n=_$(d)
  12. data
  13. d={10, 20, -32, 177, 0, -11.5, 19, 7, 6.2, -6.28, -2.71, 44}

求解

  1. +Leapms>load
  2. Current directory is "ROOT".
  3. .........
  4. sort.leap
  5. .........
  6. please input the filename:sort
  7. ================================================================
  8. 1: max 0
  9. 2: subject to
  10. 3: x[i] <= x[j] -1 | i=1,...,n; j=1,...,n; i<>j; d[i] >d[j]
  11. 4: x[i] >= 1 | i=1,...,n
  12. 5: x[i] <= n | i=1,...,n
  13. 6: where
  14. 7: n is a number
  15. 8: d is a set
  16. 9: x[i] is a variable of nonnegative integer| i=1,...,n
  17. 10: data_relation
  18. 11: n=_$(d)
  19. 12: data
  20. 13: d={10, 20, -32, 177, 0, -11.5, 19, 7, 6.2, -6.28, -2.71, 44}
  21. ================================================================
  22. >>end of the file.
  23. Parsing model:
  24. 1D
  25. 2R
  26. 3V
  27. 4O
  28. 5C
  29. 6S
  30. 7End.
  31. ..................................
  32. number of variables=12
  33. number of constraints=90
  34. ..................................
  35. +Leapms>mip
  36. relexed_solution=0; number_of_nodes_branched=0; memindex=(2,2)
  37. The Problem is solved to optimal as an MIP.
  38. 找到整数规划的最优解.非零变量值和最优目标值如下:
  39. .........
  40. x1* =5
  41. x2* =3
  42. x3* =12
  43. x4* =1
  44. x5* =8
  45. x6* =11
  46. x7* =4
  47. x8* =6
  48. x9* =7
  49. x10* =10
  50. x11* =9
  51. x12* =2
  52. .........
  53. Objective*=0
  54. .........
  55. +Leapms>

对上述结果进行解释,x1*=5即第一个数放在第5位, x2*=3即第2个数放在 第2位,或者说12数字的次序数分别为5,3,12,1,8,11,4,6,7,10,9,2。

使用 线性规划 解决 数字 排序问题, +Leapms模型的更多相关文章

  1. 运输问题的+Leapms模型

    运输问题的+Leapms模型 运输问题是本科教课书中的一个经典章节.运输问题的线性规划模型非常简单,而且求解难度极小. 问题 一个公司生产并销售一种产品.该公司有m个产地.n个销地.产地 i 的供给量 ...

  2. C++ sqlite3解决中文排序问题

    导言:sqlite3默认的编码方式为UTF8编码,而在UTF8编码下,中文不是按照拼音顺序编码的,所以想解决中文排序问题,必须自定义排序规则,将UTF8编码转换成GB2312编码(GB2312编码中文 ...

  3. 【MySQL】【2】数字排序问题

    --我用的方案 SELECT * FROM TABLE_Q ORDER BY CAST(ID AS SIGNED) ASC 备注: 不做特殊处理的话,数字位数不一样时排序有问题,比如10会比2小. 其 ...

  4. 现代数字信号处理——AR模型

    1. AR模型概念观       AR模型是一种线性预测,即已知N个数据,可由模型推出第N点前面或后面的数据(设推出P点),所以其本质类似于插值,其目的都是为了增加有效数据,只是AR模型是由N点递推, ...

  5. ch1_6_7求解数字排序问题

    import java.util.Arrays; import java.util.Comparator; import java.util.HashMap; import java.util.Sca ...

  6. 解决oracle语句中 含数字的字符串按数字排序问题

    普通排序利用:order by 字段名 ASC 但是遇到有中文而且类型是varchar类型的结果就是这样 政采代(甲)字第0298号 政采代(甲)字第0421号 政采代(甲)字第1098号 政采代(甲 ...

  7. caffe_手写数字识别Lenet模型理解

    这两天看了Lenet的模型理解,很简单的手写数字CNN网络,90年代美国用它来识别钞票,准确率还是很高的,所以它也是一个很经典的模型.而且学习这个模型也有助于我们理解更大的网络比如Imagenet等等 ...

  8. iOS开发小技巧--利用MJExtension解决数据结构复杂的模型转换

    一.开发中难免会遇到,系统返回的数据中字典套集合,集合里面又套一层字典,然后字典里面还有字典或者集合等等的复杂结构的数据...MJExtension轻松搞定这类问题 1.解决方法一: 例:百思项目中帖 ...

  9. easyui实现datagrid数字排序问题

    我们在使用easyui对列进行自动排序的时候(即顺序倒序),正常情况下是通过设置field中的sortable:true属性来控制是否可以排序.但是我们会发现一个有趣的问题,在对数字进行排序的时候,这 ...

随机推荐

  1. Python + Appium 获取当前屏幕的截图方法的封装

    使用方法:get_screenshot_as_file(filename),来自于selenium\webdriver\remote\webdiver.py def take_screenShot(s ...

  2. hystrix 请求合并(6)

    hystrix支持N个请求自动合并为一个请求,这个功能在有网络交互的场景下尤其有用,比如每个请求都要网络访问远程资源,如果把请求合并为一个,将使多次网络交互变成一次,极大节省开销.重要一点,两个请求能 ...

  3. 关于socket.io的使用

    这段时间学习了socket.io,用它写了小项目,在此总结下它的基本使用方式和一些要点. socket.io是基于Node.js和WebSocket协议的实时通信开源框架,它包括客户端的JavaScr ...

  4. 页面性能优化-原生JS实现图片懒加载

    在项目开发中,我们往往会遇到一个页面需要加载很多图片的情况.我们可以一次性加载全部的图片,但是考虑到用户有可能只浏览部分图片.所以我们需要对图片加载进行优化,只加载浏览器窗口内的图片,当用户滚动时,再 ...

  5. 从壹开始前后端分离【 .NETCore2.1 +Vue 2 +AOP+DI】框架之一 || 前言

    缘起 作为一个.Net攻城狮已经4年有余了,一直不温不火,正好近来项目不是很忙,闲得无聊,搞一搞新技术,一方面是打发无聊的时间,一方面也是督促自己该学习辣!身边的大神都转行的转行,加薪的加薪,本人比较 ...

  6. 距离度量以及python实现(二)

    接上一篇:http://www.cnblogs.com/denny402/p/7027954.html 7. 夹角余弦(Cosine) 也可以叫余弦相似度. 几何中夹角余弦可用来衡量两个向量方向的差异 ...

  7. 入门系列之使用Sysdig监视您的Ubuntu 16.04系统

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由乌鸦 发表于云+社区专栏 介绍 Sysdig是一个全面的开源系统活动监控,捕获和分析应用程序.它具有强大的过滤语言和可自定义的输出,以 ...

  8. PBFT概念与Go语言入门(Tendermint基础)

    Tendermint作为当前最知名且实用的PBFT框架,网上资料并不很多,而实现Tendermint和以太坊的Go语言,由于相对小众,也存在资料匮乏和模糊错漏的问题.本文简单介绍PBFT概念和Go语言 ...

  9. 对 MES 感兴趣?赶紧看过来!

    在知乎许久都没有智能制造话题,索性自己在 2018-06-08 创建了智能制造话题,在创建话题过程中也遇到些麻烦,最终联系了知乎小管家,成功创建了该话题.目前过去7个月了,该话题的关注人数有820人了 ...

  10. Android studio简单布局之view基本属性

    本人属于自学上路,目前是在入门阶段,所以有些内容实质性比较少,请各位大佬多多包涵. 视图view的基本属性: layout_margin:定义视图与周围视图之间的空白距离 layout_padding ...