⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 intopt.m

📁 采用分支定界算法
💻 M
字号:
function[jie,fval,exflag,time]=intopt(f,a,b,intbegan,aeq,beq,lb,ub)

%这是一个求解整数规划的函数,当不入intbegan的值时默求解线形规划问题
%f,a,b为必须输入的参数,f为目标函数,A*X<=B为不等式约束
%aeq,beq为等式约束,默认为空
%ub为原问题可行域的最大范围,默认为无穷大
%lb为可行域的最小值,默认为0
%intbegan表示从哪一位开始是整数约束,注意要包括这一位,默认为可行解的维数加上1;原问题变成一个线形规划问题
%time表示分支的次数,即分支多少次后得到整数解
%

tic
n=length(f);
if nargin<8   ub=inf*ones(n,1);
    if nargin<7    lb=zeros(n,1);
        if nargin<6    beq=[];
            if nargin<5   aeq=[];
                if nargin<4   intbegan=n+1;
                end
            end
        end
    end
end


[jie,fval,exflag]=linprog(f,a,b,aeq,beq,lb,ub)
global optjie;
global optfval;
global time;
time=0;
optfval=inf;
optjie=[0;0];
[jie,fval,exflag]=branch(f,a,b,aeq,beq,lb,ub,intbegan);
disp('成功了!');
exflag=1;
disp('最优解为optjie=');
optjie
disp('最优结果为');
%optfval=f'*optjie
disp('分支的次数为time=');
time
jie=optjie;
fval=optfval;
toc


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -