QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3692|回复: 0
打印 上一主题 下一主题

复合形法求解约束最优化Fortran代码

[复制链接]
字体大小: 正常 放大

2620

主题

162

听众

1万

积分

升级  0%

  • TA的每日心情
    开心
    2015-3-12 15:35
  • 签到天数: 207 天

    [LV.7]常住居民III

    社区QQ达人 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    群组第六届国赛赛前冲刺培

    群组国赛讨论

    群组2014美赛讨论

    群组2014研究生数学建模竞

    群组数学中国试看培训视频

    跳转到指定楼层
    1#
    发表于 2015-1-12 11:16 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    !* 说明: 1.本程序为复合形法                                                                          *, T/ a0 U) u* M* @
    !*                                                                                                        *6 [- f3 Y, O' ~* W
    !*       2.程序功能是求解约束最优化问题                                                              *6 R8 M7 U/ y* b8 ?& y
    !*   max F(x1,x2,…,xn)                                                               *9 n" b) Z1 K" P' ~( D3 w( }1 c
    !*        s.t.        Gi≤xi≤Hi                                                              *
    / e$ X! ?1 R7 F& z4 u* \!*      其中 x1,x2,…,xn为独立自变量,                                                              *
    ( {5 e' v7 [! u% d; [* D+ l!*       xn+1~xm为隐式变量,是x1,x2,…,xn的函数,Gi,Hi为下界和上界,它们可以是常数(显式约束),*
    ! s+ g) ]  @1 B, S3 T# E* T3 W# A!*  也可以是自变量的函数(隐式约束)                                                            *- \. f) x7 l! d9 \) ]# J& I9 {
    !* 主程序中提供自变量的初始值,输入已知参数及打印最后结果                                            *
    : R* o" E" R' y  I/ z; j* O( q!*                                                                                                        *+ Q! ~9 z( y$ k+ R5 \1 g
    !*       3.输入变量说明                                                                              *
    3 v, {5 O5 a" \8 Y!*  N--显式自变量数                                                                           *
    : L! S5 A, U' j2 o  R# \!*  M--约束组数                                                                               *8 T/ S2 v8 f: I7 C8 l5 _8 U5 N$ Z
    !*  K--构成复合形的顶点数,常用N+1,可多取                                                      *
    / y/ k! o; M) W$ D!*  ITMAX--允许最多迭代次数                                                                   *7 Y% s1 F9 E% l
    !*  IPRINT--打印控制参数,IPRINT=1,打印中间结果,IPRINT=0,不打印中间结果                        *9 R5 B& b+ q+ X) R# Y/ F# \
    !*  ALPHA--反射因子,常用1.3                                                                   *
    & |# L* |" B8 G. ~' \2 Y9 H: b; ?  e  ~!*  BETA--收敛参数,例如函数的幅值乘1E-4                                                       *
    , j8 R) X6 Q- z6 C!*  GAMMA--收敛参数,整数,常用值为5                                                            *
    ( T" q- _! y$ B! ?+ W. q# G1 F!*  DELTA--显式约束违反校正,小正数,如X向量幅值乘1E-4                                          *
    : |) c/ W" h- S6 Z!*  X(1,J)--自变量初始可行点,=1,N                                                             *
    & l( I8 z1 l7 S; C$ U& K!*                                                                                                      *
    1 k3 ^3 E7 J- M  Z7 {5 E! R!*      4.输出变量说明                                                                               *" \8 ]5 b! N+ X- x7 K3 [
    !*  F--目标函数最大值勤                                                                       *
    4 o! y2 Y% x$ V% k1 s; T!*  X(I)--自变量最优值,I=1,N                                                                  *
    ( K+ m* L% W8 g9 ]2 d* d- ~, B!*                                                                                                      *
    * a' \. Z8 j' D# B) C5 p* i!*      5.使用方法                                                                                   *4 x- L) _% u) G3 S& f
    !*  1)用户按照待解问题修改主程序PARAMETER的N,M,K值                                            *
    7 S* i4 q! I0 g5 ~' A!*  2)在子程序FUNC中给定目标函数                                                              *
    - ^4 N" w$ K2 a* G* Q2 R; v; n3 ?!*  3)在子程序CONST中给定Hi和Gi,显式约束必须放在隐式约束前面                                  *% Y! b8 V' o) k$ r* x* s! V$ q
    !*  4)编写一个数据文件COMPDAT,文件中的数据依次为下列变量的值,每个数之间用逗号分开             *   
    6 ?% d0 p; T4 f# U" _!*      ITMAX,IPRINT,ALPHA,BETA,GAMMA,DELTA,X(1,1),X(1,2),…,X(1,N)                          *- V1 h6 }% l7 X/ K" d
    !*      6.程序内容                                                                                   *, Q) D2 s4 L* Y4 D( m6 h
    !*  1)本程序由一个主程序和六个子程序组成,主程序首先给定N,M,K值,然后定义数组维数             *. a) E) S6 R" E2 v3 u
    !*   PARAMETER(N=,M=,K=)                                                               *( \. Z5 N# y2 z& A: y7 q
    !*   DIMENSION X(K,M),R(K,N),F(K),G(M),H(M),XC(N)                                      *
    ! B) Z: P, L7 u!*  主程序中提供自变量的初始值,输入已知参数及打印最后结果面                                  *
    & R+ C6 L) s% E) _* S- w!*  2)各子程序的作用分别为了                                                                  *   
    * O7 v# ]$ j9 c9 P!*      CONSX—这是一个主要子程序,调用其它于程序及输出中间结果                               *
    5 E- R  D! r  t!*      CHECK—检查所有的点是否满足约束条件,对违背约束的点进行校正                            *
    ' m* D- Z6 Q4 u9 |# C& c. i# j5 R!*      CENTR—计算中心点                                                                     */ l0 M% r* U' P+ b
    !*      FUNC —目标函数,由用户提供                                                           *
    ' a/ c0 K- c2 V!*      CONST—规定显式和隐式约束                                                             *3 i9 @1 ]* d0 P2 h. F& z2 c
    !*      RANDU—产生随机数                                                                     *
    , H0 d- L- f! T- N' D2 k* U" b5 Z!*************************************************************************************************
    + m+ K7 k1 c( Z9 l5 z6 l% j
    ( i; C3 X  `* g9 u+ Y! T
    游客,如果您要查看本帖隐藏内容请回复

    8 x9 W- R& _; D$ q9 |) h' @: k$ A. f$ c" J. @* |5 J7 r' Q
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-6-4 06:01 , Processed in 0.436092 second(s), 54 queries .

    回顶部