一个实例学会LINGO之选址问题

代码如下:

!选址问题;
!吨公里和运费成正比;

MODEL:

Title Location Problem;

sets:
demand/1..6/:a,b,d;!定义a,b,d三个向量,大小为1x6;
supply/1..2/:x,y,e;
link(demand,supply):c;!定义c为一个矩阵,稠密集合,所以大小为demand x supply 即6x2;
endsets

data:
a=1.25,8.75,0.5,5.75,3,7.25;!工地横坐标;
b=1.25,0.75,4.75,5,6.5,7.75;!工地纵坐标;
d=3,5,4,7,6,11;!工地需求量;
e=20,20;!供给量;
enddata

init:!initial location for the supply(初始点),赋初始值;
x,y=5,1,2,7;!仓库位置(5,2)和(1,7);
endinit

[email protected](link(i,j):c(i,j)*((x(j)-a(j))^2+(y(j)-b(i))^2)^(1/2));
@for(demand(i):[DEMAND_CON]@sum(supply(j):c(i,j))=d(i););
@for(supply(i):[SUPPLY_CON]@sum(demand(j):c(j,i))<=e(i););
@for(supply:@free(X);@free(Y););

END

LINGO的代码就是如此简洁,它可以又好又快地解决许多数学问题,感兴趣的同学要把这个代码看懂哦,这个还算比较典型,如果有疑问,

可以致电我的邮箱:[email protected]

如果你对ICT(Information Communications Technology)或者数学建模感兴趣,可以与我交流哈。

小编是一个敢大胆尝试新东西的ICT keener 也是一只萌萌哒95后单身喵~lol

时间: 2024-08-10 19:12:49

一个实例学会LINGO之选址问题的相关文章

一个小时学会MySQL数据库

一个小时学会MySQL数据库 目录 一.数据库概要 1.1.发展历史 1.1.1.人工处理阶段 1.1.2.文件系统 1.1.3.数据库管理系统 1.2.常见数据库技术品牌.服务与架构 1.3.数据库分类 1.3.1.关系型数据库 1.3.2.非关系型数据库 1.4.数据库规范化 1.4.1. 什么是范式 1.4.2. 三大范式 1.4.3. 范式与效率 二.MySQL介绍 2.1.MySQL概要 2.2.系统特性 2.3.存储引擎 三.快速安装运行MySQL数据库 3.1.使用绿色版 3.1.

一个小时学会Maven

目录 一.为什么要Maven二.安装与配置2.1.官网下载安装包2.2.配置环境变量2.3.本地仓储配置2.4.中央仓库配置2.5.命令行创建maven项目2.6.Jetty运行Web项目2.7.在tomcat中运行三.Maven概要3.1.Maven名词解释3.2.Maven的生命周期3.3.Maven标准工程结构3.4.Maven的"约束优于配置"3.5.Maven的版本规范3.6.项目骨架Maven Archetype3.7.maven的项目对象模型四.IDE中使用Maven(I

只运行一个实例以及内存泄漏检测

unit 使应用程序只运行一个实例; interface uses Windows; const  // - 互斥体唯一的名字  _Mutex_Name = '{19631971-1976-1981-1989-199319941995}'; var  _Mutex_Handle: THandle; implementation initialization // - 载入时调用的代码 // - 创建互斥体对象_Mutex_Handle := CreateMutex(nil, False, LPC

C# WinForm 判断程序是否已经在运行,且只允许运行一个实例

static class Program {   /// <summary>   /// 应用程序的主入口点.   /// </summary>   [STAThread]   static void Main()   {     Application.EnableVisualStyles();     Application.SetCompatibleTextRenderingDefault(false);     //1.这里判定是否已经有实例在运行     //只运行一个实

转 C# 只允许运行一个实例

来源:http://blog.csdn.net/jin20000/article/details/3136791 互斥进程(程序), 简单点说,就是在系统中只能有该程序的一个实例运行. 现在很多软件都有这功能,如Maxthon 可以设置为"只允 许打开一个窗体",还有Bitcomet等. 我也是看到这些软件的这个功能才来研究这个问题的.  要实现程序的互斥,通常有三中方式,下面 用 C#  语言来实现: 实现方式一: 使用线程互斥变量. 通过定义互斥变量来判断是否已运行实例.C#实现如

C++静态变量本身可否是一个实例对象

一般书上总是用int来举例,那个太简单.如果静态变量本身可否是一个实例对象呢?应该是可以,但是这样涉及到它的构造函数以及它内部的静态变量如何初始化两个问题,换而言之,这个静态变量本身应该如何初始化?这个问题和单例模式有些关系,回头查查. 以下是一个不成熟的例子,但是能编译运行通过. #include "stdafx.h" #include <iostream> using namespace std; class AAA { public: static int sss;

使程序只运行一个实例

//APP 里面 //1.// 此程序只能运行一次,用互斥量来判断程序是否已运行 1 HANDLE m_hMutex=CreateMutex(nullptr,TRUE, m_pszAppName); 2 if(GetLastError()==ERROR_ALREADY_EXISTS) { return FALSE; } //2. 1 HWND hWnd = FindWindow(nullptr, m_pszAppName/*_T("MyDlg")*/); //第一个参数: 窗口的类名

ArcGIS API for JavaScript开发环境搭建及第一个实例demo

原文:ArcGIS API for JavaScript开发环境搭建及第一个实例demo ESRI公司截止到目前已经发布了最新的ArcGIS Server for JavaScript API v3.9,它提供了更为丰富而又强大的功能.     一.安装前准备 1.ArcGIS Server for JavaScript API各版本下载地址:http://support.esrichina-bj.cn/2011/0223/960.html,我们选择下载最新的"ArcGIS API for Ja

检查一个实例的状态变化

使用情景: 一个实例在上次“保存”操作之后又被修改了,需要检查它的状态变化以便有选择的保存此实例. 解决方案: 一个有效的解决方案是创建一个mixin类,这个类可以从多个类继承并能对一个实例的状态进行快照操作,这样就可以用此实例的当前状态和上次的快照做比较了,来判断是否被修改过了. 1 import copy 2 class ChangeCheckerMixin: 3 containerItems = {dict: dict.iteritems, list: enumerate} 4 immut