楼主: bobguy
1975 0

[原创博文] A template for proc optmodel [推广有奖]

学科带头人

7%

还不是VIP/贵宾

-

威望
0
论坛币
14187 个
通用积分
28.9279
学术水平
344 点
热心指数
363 点
信用等级
228 点
经验
104882 点
帖子
1846
精华
0
在线时间
1608 小时
注册时间
2008-7-18
最后登录
2019-3-8

中级热心勋章

楼主
bobguy 发表于 2012-3-16 09:08:16 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
SAS proc optmodel provides easy to use interface to the optimization solver. Here is a general example for linear programming for maximize profit given cost structure and selling price.

R (n)=unit cost of type n material (labor, material1, material2 ....)
cost (n) = price of the cost of type n material
p(m) = price of selling price of type m product

Availability(n)= total resource available of type n material.


%let nresource=3;
%let nproduct=5;

%let seed1=123;
%let seed2=897;
%let seed3=784;


data resource;
  length resource $10;
  do i=1 to &nresource;   
     resource=catt('R',i);
     Cost=ranuni(&seed1)*10;
     Available=ranuni(&seed1)*400;
         output;
  end;
  drop i;
run;

proc print data=resource;run;

data product;
  retain product     Price;
  array R R1-R&nresource;
  length product $10;
  do i=1 to &nproduct;   
     product=catt('P',i);
     do j=1 to &nresource;
       R[j]=ranuni(&seed2)*3;
         end;
     Price=ranuni(&seed2)*100;
         output;
  end;
  drop i j;
run;

proc print data=product;run;

proc optmodel;

   set <str> Products, Resources;
   num Cost{Resources}, Availability{Resources};
   num Price{Products};
   num Required{Resources,Products};

   read data resource into Resources=[Resource]
     Cost Availability=Available;

   read data product into Products=[product]  
     {r in Resources} <Required[r,product]=col(r)>
     Price;

   var x{Products} >= 0;

   impvar Revenue = sum{p in Products}
     Price[p]*x[p];

   impvar Amount_Used{r in Resources} =
     sum{p in Products} Required[r,p]*x[p];

   impvar Total_Cost = sum{r in Resources}
     Cost[r]*Amount_Used[r];

   impvar Profit{p in Products} = ( Price[p] -
     sum{r in Resources} Cost[r]*Required[r,p] ) * x[p];

   con Usage{r in Resources}:
     Amount_Used[r] <= Availability[r] ;

         reset printlevel=2;
   max Net_Profit = Revenue - Total_Cost;

   solve;

     print 'Profit:' (Net_Profit) dollar.      'Revenue:' (Revenue) dollar.  'Total Cost:' (Total_Cost) dollar7.;

   print {p in Products: x[p] > 0} x {p in Products: x[p] > 0} Profit;

   quit;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Template OPTMODEL plate model Late available interface structure material provides

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 06:51