运筹学实验报告

商学院经济管理实验教学中心

        管理运筹学           

       1201信息管理与信息系统

                      

                    

实验项目数     5            

    


说明:

1.实验预习:通过实验预习,明确实验目的要求、实验原理及相关知识点、实验方法、步骤以及操作注意事项等;对设计性实验要事先设计实验方案;根据需要合理设计实验数据记录表格。

2.实验过程:实际采用的实验方法、步骤、操作过程或实验设计方案(设计型实验)的描述。对于实验结果的表述一般有以下两种方法,在撰写实验报告时,可任选其中一种或两种方法并用,以获得最佳效果。

(1)文字表述: 根据实验目的将原始资料系统化、条理化,用准确的专业语言客观地描述实验现象和结果,要体现时间顺序以及各项指标在时间上的关系。

(2)图表或图形表示: 利用表格、坐标图、绘画或利用记录仪器描绘出的曲线图,使实验结果突出、清晰、形象、直观。

3.数据分析、实验结论

(1)根据相关的理论知识对所得到的实验结果进行解释和分析,包括实验成功或失败的原因。

(2)不能因实验结果与预期的结果或理论不符而随意取舍甚至修改实验原始数据和伪造实验结果。如果实验失败,应找出原因及今后应注意的事项。

4. 任课老师可结合学科和专业课程特点,对实验报告内容作科学合理的调整。

5.学生在课程结束后将本门课程所有实验报告装订成册,任课教师负责收齐交实验室存档


实验 1      (实验项目序号)

      运筹学      课程实验报告                               实验地点:    二教501         

实验   2    (实验项目序号)

     运筹学       课程实验报告                               实验地点:二教501             

实验   3    (实验项目序号)

   运筹学         课程实验报告                               实验地点:  二教501           

实验    4   (实验项目序号)

      运筹学      课程实验报告                               实验地点:二教501

实验    5   (实验项目序号)

    运筹学   课程实验报告                               实验地点:   二教501        

 

第二篇:运筹学实验报告单

运筹学实验报告

一·实验目的与任务

通过实验使学生进一步掌握运筹学相关问题的原理、方法和求解过程,加深对运筹学的有关理论、方法的理解,培养学生的分析能力、动手能力和创新意识以及解决问题的能力。为该专业学生学习其他相关专业课程提供有关系统决策和最优化问题的基础知识。同时也为学生今后从事科研和工程实践打下良好的基础。

二·实验内容

根据给定的线性规划问题(Linear Programming),建立线性规划模型(Linear Programming Model)编写相应的单纯形法求解程序,完成题目的求解,并对结果进行分析和讨论。

三·问题的背景与生产问题(某木器制造厂年度产品生产计划的优化研究)

    某木器制造厂是生产木器制品的专业厂家,有多年生产该类产品的丰富经验和悠久历史,无论从生产组织,产品研发,技术力量还是从经营销售等哪一方面来看,在当地同行中均占有相当的优势。但另一方面,也确实存在着管理方法陈旧,管理手段落后的实际问题,尤其是近年来,随着经济体制改革的逐步实施,整个市场情况发生了很大的变化。已计划经济为主,市场调节为辅的指导性生产计划代替了传统的统购包销的指令性计划。这种新形势的出现迫使企业必须提高自身对市场需求变化的适应能力,必须重视和加强对产品生产总体经济效益的分析与研究,努力提高企业的素质。

四·数学模型

对应于产品的编号,记其年产量分别为并记一年的总收益为,则线性规划问题如下                                                        :

            

五·程序代码(C语言版)

#include<stdio.h>

#include<math.h>

Void main{

  Float q,p1,A[21][31],A0[21][31],b[21],b0[21],x,c[31],c0[31];

  Int n,i,j,k,m,p,J[31],J0[31],s[21];

  Printf(“Please input the size of the system of equations. the row is no more than 20 and the rank is no more than 30\n”);

  Scanf(“%d,%d”,&m,&n);

  For(i=1;i<=m;i++){

Printf (“Please input NO.%d row of the coefficient array A:\n”,i);

For(j=1;j<=n;j++)

  Scanaf(“%f”,&A[i][j]);

}

  Printf(“Please input the resource coefficients b:\n”);

  For(i=1;i<=m;i++)

Scanf(“%f”,&b[i]);

  Printf(“Please input the coefficient of these variables in the target function c:\n”);

  For(j=1;j<=n;js++)

Scanf(“%f”,&c[j]);

  Printf(“Please input the initial basic variables. Distinguish them with 1 or 0:\n”);

  For(j=1;j<=n;j++)

Scanf(“%d”,&J[j]);

  For(j=1;j<=n;j++)

J0[j]=1-J[j];

  Printf(“Please input the subscripts of the initial basic variables:\n”);

  For(i=1;i<=m;i++)

Scanf(“%d”,&s[i]);

D1:For(i=1;i<=m;i++)

    For(j=1;j<=n;j++)

  A0[i][j]=(-1)*c[s[i]*A[i][j]*J0[j]];

  For(j=1;j<=n;j++){

p1=0;

For(i=1;i<=m;i++)

  p1=p1+A0[i][j];

c0[j]=p1+c[j]*J0[j];

D2:q=c0[1];

  p=1;

  For(j=2;j<=n;j++)

If(c0[j]<q){

  q=c0[j];

  p=j;

}

  If(q>=0){

q=0;

Printf(“the optimal solution of the linear programming is:\n”);

For(i=1;i<=m;i++){

  Printf(“x[%d]=%f\n”,s[i],b[i]);

  q=q+c[s[i]]*b[i];

  }

Printf(“the value of the target function is:\n”);

Return;

}

  Else{

For(i=1;i<=m;i++){

  If(A[i,p]==0)

    b0[i]=-1;

  Else if ((b0[i]==0)&&(A[i,p]<0))

        b0[i]=-1;

      Else if ((b0[i]==0)&&(A[i,p]>0)){

            c0[p]=1;

            Goto D2;

            }

  Else

    b0[i]=b[i]/A[i][p];

  }

  q=b0[1];

  For(i=2;i<=m;i++)

        If (b0[i]>q)

          q=b0[i];

      If (q<0){

        Printf(“there is no optimal solution about the linear programming”);

      Return;

      }

      Else{

        For(i=1;i<=m;i++)

          If((b0[i]>0)&&(b0[i]<=q))

            q=b0[i];

            k=i;

          }

      J[p]=1;

      J[s[k]]=0;

      J0[p]=0;

      J0[s[k]]=1;

      s[k]=p;

      x=A[k][p];

      For(j=1;j<=n;j++)

        A[k][j]=A[k][j]/x;

      b[k]=b[k]/x;

      For(i=k-1;i>=1;i--){

        x=A[i][p];

        For(j=1;j<=n;j++)

          A[i][j]=A[i][j]-A[k][j]*x;

        b[i]=b[i]-b[k]*x;

      }

      For(i=k+1;i<=m;i++){

        x=A[i][p];

        For(j=1;j<=n;j++)

          A[i][j]=A[i][j]-A[k][j]*x;

        b[i]=b[i]-b[k]*x

        }

      }

   }

  Goto D1;

}

六·程序运行结果

    七·注意事项

问题的代码为求min型的问题,故在输入时要对目标函数进行修正。

八·实验结果解读

由于实验中变量下标大于26为松弛变量,故由此可知该工厂应该在接下来的一年中这样计划生产:

在众多产品中,该工厂只需生产762步枪箱,B713卡板和设备资料柜。一年中的计划产量分别为500,1271919和5394。

得到这样的结果,经过一种直观的解读就是说这三种产品在当前的生产力水平,资源约束下投入产出的总比率最大,这样才能实现利润最大化。

                                                         管理科学与工程系

                                                            PB11204067

                                                                王军     

相关推荐