数学建模——lingo实现多目标规划

数学建模——lingo实现多目标规划数学建模 lingo 实现多目标规划

数学建模——lingo实现多目标规划

  1. 某单位领导在考虑本单位职工的升级调资方案时,要求相关部门遵守以下的规定:

(1)年工资总额不超过元;

(2)每级的人数不超过定编规定的人数;

(3)II、III级的升级面尽可能达到现有人数的20%;

lingo编程求解:

model: sets: variable/1..3/:x; S_Con_Num/1..6/:g,dplus,dminus; S_con(S_Con_Num,Variable):c; endsets data: g= 3 3 0 2 3; c=20000 10000 20000 1 0 0 -1 1 0 0 -1 1 1 0 0 1 0 0; enddata !min=dplus(1); !min=dplus(2) + dplus(3) + dplus(4); min=dminus(5)-dplus(5) + dminus(6)-dplus(6); @for(S_Con_Num(i):@sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); dplus(1)=0; dplus(2)+ dplus(3) + dplus(4)=0; !@for(variable:@gin(x)); end 

具体操作如下

根据约束条件的优先级数依次求解

首先求解第一级规划:

model: sets: variable/1..3/:x; S_Con_Num/1..6/:g,dplus,dminus; S_con(S_Con_Num,Variable):c; endsets data: g= 3 3 0 2 3; c=20000 10000 20000 1 0 0 -1 1 0 0 -1 1 1 0 0 1 0 0; enddata !min=dplus(1); @for(S_Con_Num(i):@sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); end 
 S_Con_Num/1..6/:g,dplus,dminus; S_con(S_Con_Num,Variable):c; endsets data: g= 3 3 0 2 3; c=20000 10000 20000 1 0 0 -1 1 0 0 -1 1 1 0 0 1 0 0; enddata !min=dplus(1); min=dplus(2) + dplus(3) + dplus(4); @for(S_Con_Num(i):@sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); dplus(1)=0; @for(variable:@gin(x)); end 
 S_Con_Num/1..6/:g,dplus,dminus; S_con(S_Con_Num,Variable):c; endsets data: g= 3 3 0 2 3; c=20000 10000 20000 1 0 0 -1 1 0 0 -1 1 1 0 0 1 0 0; enddata !min=dplus(1); !min=dplus(2) + dplus(3) + dplus(4); min=dminus(5)-dplus(5) + dminus(6)-dplus(6); @for(S_Con_Num(i):@sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); dplus(1)=0; dplus(2) + dplus(3) + dplus(4)=0; !@for(variable:@gin(x)); end 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2026年3月16日 下午5:06
下一篇 2026年3月16日 下午5:06


相关推荐

  • 最全JVM面试题

    最全JVM面试题文章目录 1 说一下 JVM 的主要组成部分及组成部分的作用 2 说一下 JVM 的作用 3 深拷贝和浅拷贝 4 说一下堆栈的区别 5 队列和栈是什么 有什么区别 1 说一下 JVM 的主要组成部分及组成部分的作用 方法区和堆是所有线程共享的内存区域 而 java 栈 本地方法栈和程序员计数器是运行是线程私有的内存区域 运行时数据区域就是我们常说的 JVM 的内存 类加载子系统 根据给定的全限定名类名 如 java lang Object 来装载 class 文件到运行时数据区中的方法区中 Java 堆

    2026年3月26日
    2
  • c++ 二维vector_vector如何重置

    c++ 二维vector_vector如何重置初始化二维vector,为r*c的vector,所有值为0.1.直接用初始化方法(刚开始没想到)vector>newOne(r,vector(c,0));2.用resize()来控制大小vector>res;res.resize(r);//r行for(intk=0;k

    2026年1月20日
    5
  • 数据结构实验报告(一)

    数据结构实验报告(一)数据结构实验报告 一 一 实验名称实验一 nbsp 线性表的基本操作实现及其应用二 实验目的 1 熟练掌握线性表的结构特点 掌握顺序表的基本操作 2 巩固 C 相关的程序设计方法与技术 3 学会使用顺序表解决实际问题 三 实验内容顺序表的建立与操作实现建立 n 个元素的顺序表 n 的大小和表里数据自己确定 实现相关的操作 输出 插入 删除 查找等功能 编写完整程序

    2026年3月18日
    3
  • Java链表应用

    Java链表应用链表类publicclassListNode{intval;ListNodenext=null;ListNode(intval){this.val=val;}}1、返回倒数第k个结点前后指针法需要考虑k大于链表长度的情况publicclassSolution{publicL…

    2022年5月23日
    35
  • 大模型如何助力数学可视化?

    大模型如何助力数学可视化?

    2026年3月15日
    3
  • Arthas – Java 线上问题定位处理的终极利器「建议收藏」

    Arthas – Java 线上问题定位处理的终极利器「建议收藏」前言在使用Arthas之前,当遇到Java线上问题时,如CPU飙升、负载突高、内存溢出等问题,你需要查命令,查网络,然后jps、jstack、jmap、jhat、jstat、hprof等一通操作。最终焦头烂额,还不一定能查出问题所在。而现在,大多数的常见问题你都可以使用Arthas轻松定位,迅速解决,及时止损,准时下班。1、Arthas介绍Arthas是Alib…

    2025年8月22日
    10

发表回复

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

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