国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【運(yùn)籌優(yōu)化】拉格朗日松弛 & 次梯度算法求解整數(shù)規(guī)劃問題 + Java調(diào)用Cplex實(shí)戰(zhàn)

這篇具有很好參考價(jià)值的文章主要介紹了【運(yùn)籌優(yōu)化】拉格朗日松弛 & 次梯度算法求解整數(shù)規(guī)劃問題 + Java調(diào)用Cplex實(shí)戰(zhàn)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


一、拉格朗日松弛

當(dāng)遇到一些很難求解的模型,但又不需要去求解它的精確解,只需要給出一個(gè)次優(yōu)解或者解的上下界,這時(shí)便可以考慮采用松弛模型的方法加以求解。

對于一個(gè)整數(shù)規(guī)劃問題,拉格朗日松弛放松模型中的部分約束。這些被松弛的約束并不是被完全去掉,而是利用拉格朗日乘子在目標(biāo)函數(shù)上增加相應(yīng)的懲罰項(xiàng),對不滿足這些約束條件的解進(jìn)行懲罰。

拉格朗日松弛之所以受關(guān)注,是因?yàn)樵诖笠?guī)模的組合優(yōu)化問題中,若能在原問題中減少一些造成問題“難”的約束,則可使問題求解難度大大降低,有時(shí)甚至可以得到比線性松弛更好的上下界。

【運(yùn)籌優(yōu)化】拉格朗日松弛 & 次梯度算法求解整數(shù)規(guī)劃問題 + Java調(diào)用Cplex實(shí)戰(zhàn)
【運(yùn)籌優(yōu)化】拉格朗日松弛 & 次梯度算法求解整數(shù)規(guī)劃問題 + Java調(diào)用Cplex實(shí)戰(zhàn)


二、次梯度算法

由于拉格朗日對偶問題通常是分段線性的,這會導(dǎo)致其在某些段上不可導(dǎo),所以沒法使用常規(guī)的梯度下降法處理。于是引入次梯度(Subgradient)用于解決此類目標(biāo)函數(shù)并不總是處處可導(dǎo)的問題。

次梯度算法的優(yōu)勢是比傳統(tǒng)方法能夠處理的問題范圍更大,不足之處就是算法收斂速度慢。

【運(yùn)籌優(yōu)化】拉格朗日松弛 & 次梯度算法求解整數(shù)規(guī)劃問題 + Java調(diào)用Cplex實(shí)戰(zhàn)

【運(yùn)籌優(yōu)化】拉格朗日松弛 & 次梯度算法求解整數(shù)規(guī)劃問題 + Java調(diào)用Cplex實(shí)戰(zhàn)


三、案例實(shí)戰(zhàn)

【運(yùn)籌優(yōu)化】拉格朗日松弛 & 次梯度算法求解整數(shù)規(guī)劃問題 + Java調(diào)用Cplex實(shí)戰(zhàn)
【運(yùn)籌優(yōu)化】拉格朗日松弛 & 次梯度算法求解整數(shù)規(guī)劃問題 + Java調(diào)用Cplex實(shí)戰(zhàn)

松弛之后的目標(biāo)函數(shù)為

m a x : z = 16 x 1 + 10 x 2 + 4 x 4 + μ [ 10 ? ( 8 x 1 + 2 x 2 + x 3 + 4 x 4 ) ] max :z=16x_1+10x_2+4x_4+\mu[10-(8x_1+2x_2+x_3+4x_4)] max:z=16x1?+10x2?+4x4?+μ[10?(8x1?+2x2?+x3?+4x4?)]

化簡為

m a x : z = ( 16 ? 8 μ ) x 1 + ( 10 ? 2 μ ) x 2 + ( ? μ ) x 3 + ( 4 ? 4 μ ) x 4 + 10 μ max :z=(16-8\mu)x_1+(10-2\mu)x_2+(-\mu)x_3+(4-4\mu)x_4+10\mu max:z=(16?8μ)x1?+(10?2μ)x2?+(?μ)x3?+(4?4μ)x4?+10μ

由于每一次迭代時(shí) μ \mu μ 是一個(gè)確定的常數(shù),所以目標(biāo)函數(shù)中的 10 μ 10\mu 10μ 可以在建模時(shí)省略

具體求解代碼如下:

import ilog.concert.IloException;
import ilog.concert.IloIntVar;
import ilog.concert.IloLinearNumExpr;
import ilog.cplex.IloCplex;

import java.util.Arrays;

public class TestLR {
    // lambda
    static double lambda = 2d;
    // 最大迭代次數(shù)
    static int epochs = 100;
    // 上界最大未更新次數(shù)
    static int ubMaxNonImproveCnt = 3;
    // 最小步長
    static double minStep = 0.001;
    // 松弛問題模型
    static IloCplex relaxProblemModel;
    // 變量數(shù)組
    static IloIntVar[] intVars;
    // 最佳上下界
    static double bestLB = 0d;
    static double bestUB = 1e10;
    // 最佳拉格朗日乘數(shù)
    static double bestMu = 0d;
    // 最佳解
    static double[] bestX;

    // 運(yùn)行主函數(shù)
    public static void run() throws IloException {
        //
        double mu = 0d;
        double step = 1d;
        int ubNonImproveCnt = 0;
        // 初始化松弛問題模型
        initRelaxModel();
        // 開始迭代
        for (int epoch = 0; epoch < epochs; epoch++) {
            System.out.println("----------------------------- Epoch-" + (epoch + 1) + " -----------------------------");
            System.out.println("mu: " + mu);
            System.out.println("lambda: " + lambda);
            // 根據(jù)mu,設(shè)置松弛問題模型目標(biāo)函數(shù)
            setRelaxModelObjectiveBuMu(mu);
            if (relaxProblemModel.solve()) {
                // 獲得當(dāng)前上界(由于建模時(shí)沒有考慮常數(shù) 10*mu,所以這里要加回來,得到松弛問題的真正目標(biāo)值)
                double curUB = relaxProblemModel.getObjValue() + 10 * mu;
                // 更新上界
                if (curUB < bestUB) {
                    bestUB = curUB;
                    ubNonImproveCnt = 0;
                } else {
                    ubNonImproveCnt++;
                }
                System.out.println("curUB: " + curUB);
                // 獲取變量值
                double[] x = relaxProblemModel.getValues(intVars);
                // 計(jì)算次梯度
                double subGradient = (8 * x[0] + 2 * x[1] + x[2] + 4 * x[3]) - 10;
                double dist = Math.pow(subGradient, 2);
                // 迭迭代停止條件1
                if (dist <= 0.0) {
                    System.out.println("Early stop: dist (" + dist + ") <= 0 !");
                    break;
                }
                // 如果次梯度大于等于0,說明滿足被松弛的約束,即可以作為原問題的可行解
                if (subGradient <= 0) {
                    // 計(jì)算當(dāng)前原問題的解值
                    double obj = 16 * x[0] + 10 * x[1] + 4 * x[3];
                    if (obj > bestLB) {
                        // 更新下界
                        bestLB = obj;
                        bestMu = mu;
                        bestX = x.clone();
                    }
                }
                System.out.println("subGradient: " + subGradient);
                System.out.println("bestUB: " + bestUB);
                System.out.println("bestLB: " + bestLB);
                System.out.println("gap: " + String.format("%.2f", (bestUB - bestLB) * 100d / bestUB) + " %");
                // 迭代停止條件2
                if (bestLB >= bestUB - 1e-06) {
                    System.out.println("Early stop: bestLB (" + bestLB + ") >= bestUB (" + bestUB + ") !");
                    break;
                }
                // 上界未更新達(dá)到一定次數(shù)
                if (ubNonImproveCnt >= ubMaxNonImproveCnt) {
                    lambda /= 2;
                    ubNonImproveCnt = 0;
                }
                // 更新拉格朗日乘數(shù)
                mu = Math.max(0, mu + step * subGradient);
                // 更新步長
                step = lambda * (curUB - bestLB) / dist;
                // 迭代停止條件3
                if (step < minStep) {
                    System.out.println("Early stop: step (" + step + ") is less than minStep (" + minStep + ") !");
                    break;
                }
            } else {
                System.err.println("Lagrange relaxation problem has no solution!");
            }
        }
    }

    // 建立松弛問題模型
    private static void initRelaxModel() throws IloException {
        relaxProblemModel = new IloCplex();
        relaxProblemModel.setOut(null);
        // 聲明4個(gè)整數(shù)變量
        intVars = relaxProblemModel.intVarArray(4, 0, 1);
        // 添加約束
        // 約束1:x1+x2<=1
        relaxProblemModel.addLe(relaxProblemModel.sum(intVars[0], intVars[1]), 1);
        // 約束2:x3+x4<=1
        relaxProblemModel.addLe(relaxProblemModel.sum(intVars[2], intVars[3]), 1);
    }

    // 根據(jù)mu,設(shè)置松弛問題模型的目標(biāo)函數(shù)
    private static void setRelaxModelObjectiveBuMu(double mu) throws IloException {
        // 目標(biāo)函數(shù)(省略了常數(shù) 10*mu)
        IloLinearNumExpr target = relaxProblemModel.linearNumExpr();
        target.addTerm(16 - 8 * mu, intVars[0]);
        target.addTerm(10 - 2 * mu, intVars[1]);
        target.addTerm(0 - mu, intVars[2]);
        target.addTerm(4 - 4 * mu, intVars[3]);
        if (relaxProblemModel.getObjective() == null) {
            relaxProblemModel.addMaximize(target);
        } else {
            relaxProblemModel.getObjective().setExpr(target);
        }
    }

    public static void main(String[] args) throws IloException {
        long s = System.currentTimeMillis();
        run();
        System.out.println("----------------------------- Solution -----------------------------");
        System.out.println("bestMu: " + bestMu);
        System.out.println("bestUB: " + bestUB);
        System.out.println("bestLB: " + bestLB);
        System.out.println("gap: " + String.format("%.2f", (bestUB - bestLB) * 100d / bestUB) + " %");
        System.out.println("bestX: " + Arrays.toString(bestX));
        System.out.println("Solve Time: " + (System.currentTimeMillis() - s) + " ms");
    }

}

程序輸出:

----------------------------- Epoch-1 -----------------------------
mu: 0.0
lambda: 2.0
curUB: 20.0
subGradient: 2.0
bestUB: 20.0
bestLB: 0.0
gap: 100.00 %
----------------------------- Epoch-2 -----------------------------
mu: 2.0
lambda: 2.0
curUB: 26.0
subGradient: -8.0
bestUB: 20.0
bestLB: 10.0
gap: 50.00 %
----------------------------- Epoch-3 -----------------------------
mu: 0.0
lambda: 2.0
curUB: 20.0
subGradient: 2.0
bestUB: 20.0
bestLB: 10.0
gap: 50.00 %
----------------------------- Epoch-4 -----------------------------
mu: 1.0
lambda: 2.0
curUB: 18.0
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-5 -----------------------------
mu: 11.0
lambda: 2.0
curUB: 110.0
subGradient: -10.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-6 -----------------------------
mu: 0.0
lambda: 2.0
curUB: 20.0
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-7 -----------------------------
mu: 4.0
lambda: 2.0
curUB: 42.0
subGradient: -8.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-8 -----------------------------
mu: 0.0
lambda: 1.0
curUB: 20.0
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-9 -----------------------------
mu: 1.0
lambda: 1.0
curUB: 18.0
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-10 -----------------------------
mu: 6.0
lambda: 1.0
curUB: 60.0
subGradient: -10.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-11 -----------------------------
mu: 0.0
lambda: 0.5
curUB: 20.0
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-12 -----------------------------
mu: 0.5
lambda: 0.5
curUB: 19.0
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-13 -----------------------------
mu: 3.0
lambda: 0.5
curUB: 34.0
subGradient: -8.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-14 -----------------------------
mu: 0.0
lambda: 0.25
curUB: 20.0
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-15 -----------------------------
mu: 0.1875
lambda: 0.25
curUB: 19.625
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-16 -----------------------------
mu: 1.4375
lambda: 0.25
curUB: 21.5
subGradient: -8.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-17 -----------------------------
mu: 0.0
lambda: 0.125
curUB: 20.0
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-18 -----------------------------
mu: 0.044921875
lambda: 0.125
curUB: 19.91015625
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-19 -----------------------------
mu: 0.669921875
lambda: 0.125
curUB: 18.66015625
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-20 -----------------------------
mu: 1.289306640625
lambda: 0.0625
curUB: 20.314453125
subGradient: -8.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-21 -----------------------------
mu: 0.206787109375
lambda: 0.0625
curUB: 19.58642578125
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-22 -----------------------------
mu: 0.22693252563476562
lambda: 0.0625
curUB: 19.54613494873047
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-23 -----------------------------
mu: 0.5265083312988281
lambda: 0.03125
curUB: 18.946983337402344
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-24 -----------------------------
mu: 0.6756666898727417
lambda: 0.03125
curUB: 18.648666620254517
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-25 -----------------------------
mu: 0.8154633045196533
lambda: 0.03125
curUB: 18.369073390960693
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-26 -----------------------------
mu: 0.9505987204611301
lambda: 0.015625
curUB: 18.09880255907774
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-27 -----------------------------
mu: 1.0159821063280106
lambda: 0.015625
curUB: 18.127856850624084
subGradient: -8.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-28 -----------------------------
mu: 0.7628945263568312
lambda: 0.015625
curUB: 18.474210947286338
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-29 -----------------------------
mu: 0.766863206459675
lambda: 0.0078125
curUB: 18.46627358708065
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-30 -----------------------------
mu: 0.7999655929725122
lambda: 0.0078125
curUB: 18.400068814054976
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-31 -----------------------------
mu: 0.833036974172046
lambda: 0.0078125
curUB: 18.333926051655908
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-32 -----------------------------
mu: 0.8658497429769483
lambda: 0.00390625
curUB: 18.268300514046103
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-33 -----------------------------
mu: 0.8821269422965887
lambda: 0.00390625
curUB: 18.235746115406823
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-34 -----------------------------
mu: 0.8982759667380851
lambda: 0.00390625
curUB: 18.20344806652383
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-35 -----------------------------
mu: 0.914361408369739
lambda: 0.001953125
curUB: 18.17127718326052
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-36 -----------------------------
mu: 0.9223725881222037
lambda: 0.001953125
curUB: 18.155254823755595
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-37 -----------------------------
mu: 0.9303523509964815
lambda: 0.001953125
curUB: 18.13929529800704
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-38 -----------------------------
mu: 0.9383164670353054
lambda: 9.765625E-4
curUB: 18.123367065929386
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-39 -----------------------------
mu: 0.9422907323175354
lambda: 9.765625E-4
curUB: 18.11541853536493
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
----------------------------- Epoch-40 -----------------------------
mu: 0.9462572201426962
lambda: 9.765625E-4
curUB: 18.107485559714608
subGradient: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
Early stop: step (9.896832958635996E-4) is less than minStep (0.001) !
----------------------------- Solution -----------------------------
bestMu: 2.0
bestUB: 18.0
bestLB: 10.0
gap: 44.44 %
bestX: [0.0, 1.0, 0.0, 0.0]
Solve Time: 152 ms

分析:
從最終結(jié)果可以看到, bestLB 為10,也就是通過拉格朗日松弛&次梯度算法得到的最優(yōu)可行解的目標(biāo)值為10,這明顯不是最優(yōu)解(最優(yōu)解應(yīng)該是16, x 1 = 1 x_1=1 x1?=1,其余變量為0)
這是因?yàn)槲覀兯沙诹艘粋€(gè)約束,所以通過拉格朗日松弛&次梯度算法得到的解不一定是最優(yōu)解。但是當(dāng)遇到一些很難求解的模型,但又不需要去求解它的精確解時(shí),拉格朗日松弛&次梯度算法就可以派上用場了!


參考鏈接:文章來源地址http://www.zghlxwxcb.cn/news/detail-501703.html

  • 【凸優(yōu)化筆記5】-次梯度方法(Subgradient method)
  • 運(yùn)籌學(xué)教學(xué)|快醒醒,你的熟人拉格朗日又來了?。?/li>
  • 拉格朗日松弛求解整數(shù)規(guī)劃淺析(附Python代碼實(shí)例)

到了這里,關(guān)于【運(yùn)籌優(yōu)化】拉格朗日松弛 & 次梯度算法求解整數(shù)規(guī)劃問題 + Java調(diào)用Cplex實(shí)戰(zhàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 軟件工具 | Python調(diào)用運(yùn)籌優(yōu)化求解器(一):以CVRP&VRPTW為例

    軟件工具 | Python調(diào)用運(yùn)籌優(yōu)化求解器(一):以CVRP&VRPTW為例

    歡迎關(guān)注個(gè)人微信公眾號:Python助力交通 優(yōu)化求解器是解決復(fù)雜工程問題不可或缺的工具,可以幫助我們驗(yàn)證模型的正確性、理解決策變量的耦合關(guān)系、獲取最優(yōu)決策方案(合適規(guī)模條件下)。小編搜羅了網(wǎng)上關(guān)于各類常見(其實(shí)并不常見)的優(yōu)化求解器介紹的帖子: 優(yōu)化

    2024年02月10日
    瀏覽(83)
  • 優(yōu)化|求解非凸和無梯度lipschitz連續(xù)性的一階算法在二次規(guī)劃反問題中的應(yīng)用(代碼分享)

    優(yōu)化|求解非凸和無梯度lipschitz連續(xù)性的一階算法在二次規(guī)劃反問題中的應(yīng)用(代碼分享)

    原文信息(包括題目、發(fā)表期刊、原文鏈接等):First Order Methods Beyond Convexity and Lipschitz Gradient Continuity with Applications to Quadratic Inverse Problems 原文作者:Jér?me Bolte, Shoham Sabach, Marc Teboulle, and Yakov Vaisbourd 代碼分享者:李朋 考慮下面的二次規(guī)劃反問題 min ? { Ψ ( x ) : = g ( x ) +

    2024年02月05日
    瀏覽(21)
  • 帶約束條件的運(yùn)籌規(guī)劃問題求解(模擬退火算法實(shí)現(xiàn))

    超級簡單的模擬退火算法實(shí)現(xiàn)ε?(? ? )?з搭配最簡單的線性規(guī)劃模型進(jìn)行講解!但是如果需要的話,可以直接修改程序求解非線性問題哦(′つヮ??) [max,f(x)=10x_1+9x_2] (s.t.) [6x_1+5x_2leq{60}tag{1}] [10x_1+20x_2leq{150}tag{2}] [0leq{x_1}leq{8}tag{3}] [0leq{x_2}leq{8}tag{4}] 對約束

    2023年04月18日
    瀏覽(31)
  • 【運(yùn)籌優(yōu)化】帶時(shí)間窗約束的車輛路徑規(guī)劃問題(VRPTW)詳解 + Python 調(diào)用 Gurobi 建模求解

    【運(yùn)籌優(yōu)化】帶時(shí)間窗約束的車輛路徑規(guī)劃問題(VRPTW)詳解 + Python 調(diào)用 Gurobi 建模求解

    車輛路徑規(guī)劃問題(Vehicle Routing Problem,VRP)一般指的是:對一系列發(fā)貨點(diǎn)和收貨點(diǎn),組織調(diào)用一定的車輛,安排適當(dāng)?shù)男熊嚶肪€,使車輛有序地通過它們,在滿足指定的約束條件下(例如:貨物的需求量與發(fā)貨量,交發(fā)貨時(shí)間,車輛容量限制,行駛里程限制,行駛時(shí)間限制等)

    2024年02月02日
    瀏覽(91)
  • 【運(yùn)籌優(yōu)化】子集和問題(Subset Sum Problems , SSP)介紹 + 動態(tài)規(guī)劃求解 + Java代碼實(shí)現(xiàn)

    【運(yùn)籌優(yōu)化】子集和問題(Subset Sum Problems , SSP)介紹 + 動態(tài)規(guī)劃求解 + Java代碼實(shí)現(xiàn)

    子集和問題(Subset Sum Problems , SSP),它是復(fù)雜性理論中最重要的問題之一。 SSP會給定一組整數(shù) a 1 , a 2 , . . . . , a n a_1,a_2,....,a_n a 1 ? , a 2 ? , .... , a n ? ,最多 n n n 個(gè)整數(shù),我們需要判斷是否存在一個(gè)非空子集,使得子集的總和為 M M M 整數(shù)?如果存在則需要輸出該子集。

    2024年01月17日
    瀏覽(43)
  • 基于梯度下降算法的無約束函數(shù)極值問題求解

    基于梯度下降算法的無約束函數(shù)極值問題求解

    導(dǎo)數(shù)(Derivative),也叫 導(dǎo)函數(shù)值 。又名 微商 ,是微積分中的重要基礎(chǔ)概念。 導(dǎo)數(shù)是函數(shù)的局部性質(zhì)。一個(gè)函數(shù)在某一點(diǎn)的導(dǎo)數(shù)描述了這個(gè)函數(shù)在這一點(diǎn)附近的變化率 。如果函數(shù)的自變量和取值都是實(shí)數(shù)的話,函數(shù)在某一點(diǎn)的導(dǎo)數(shù)就是該函數(shù)所代表的曲線在這一點(diǎn)上的切線

    2024年02月13日
    瀏覽(32)
  • 【算法系列】非線性最小二乘求解-梯度下降法

    【算法系列】非線性最小二乘求解-梯度下降法

    ·【算法系列】卡爾曼濾波算法 ·【算法系列】非線性最小二乘求解-直接求解法 ·【算法系列】非線性最小二乘求解-梯度下降法 ·【算法系列】非線性最小二乘-高斯牛頓法? ·【算法系列】非線性最小二乘-列文伯格馬夸爾和狗腿算法? 文章目錄 系列文章 文章目錄 前言 一、

    2024年02月16日
    瀏覽(18)
  • 舉例說明基于線性回歸的單層神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)(以梯度下降算法來求解權(quán)重的過程)...

    舉例說明基于線性回歸的單層神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)(以梯度下降算法來求解權(quán)重的過程)...

    我們將通過一個(gè)簡單的例子來說明基于線性回歸的單層神經(jīng)網(wǎng)絡(luò),以及如何使用梯度下降算法來求解權(quán)重。 假設(shè)我們有以下數(shù)據(jù)集,表示學(xué)生的學(xué)習(xí)時(shí)間(小時(shí))與他們的考試分?jǐn)?shù): 學(xué)習(xí)時(shí)間(X):1, 2, 3, 4, 5 考試分?jǐn)?shù)(Y):2, 4, 6, 8, 10 這是一個(gè)線性關(guān)系,我們可以使用線

    2024年02月16日
    瀏覽(23)
  • 優(yōu)化算法之梯度下降|Matlab實(shí)現(xiàn)梯度下降算法

    優(yōu)化算法之梯度下降|Matlab實(shí)現(xiàn)梯度下降算法

    題目要求: 使用Matab實(shí)現(xiàn)梯度下降法 對于函數(shù): min ? f ( x ) = 2 x 1 2 + 4 x 2 2 ? 6 x 1 ? 2 x 1 x 2 min f(x)=2 x_{1}^{2}+4 x_{2}^{2}-6 x_{1}-2 x_{1} x_{2} min f ( x ) = 2 x 1 2 ? + 4 x 2 2 ? ? 6 x 1 ? ? 2 x 1 ? x 2 ? 試采用 MATLAB實(shí)現(xiàn)最速下降法求解該問題, 給出具體的迭代過程、 最終優(yōu)化結(jié)果、

    2024年02月16日
    瀏覽(28)
  • 運(yùn)籌學(xué)—例題求解

    運(yùn)籌學(xué)—例題求解

    作答如下: ? ? ?圖解法驗(yàn)證: ?由圖可得在點(diǎn)x1=20,x2=24取到最大值 Z =4080; 作答如下: 解: (1)設(shè) xij?為從產(chǎn)地Ai運(yùn)往銷地Bj的運(yùn)輸量,得到下列運(yùn)輸量表設(shè) xij 為從產(chǎn)地Ai運(yùn)往銷地Bj的運(yùn)輸量,得到下列運(yùn)輸量表 ? B1 B2 B3 產(chǎn)量 A1 x 11 x 12 x 13 200 A2 x 21 x 22 x 23 230 銷量 100 150 180

    2024年02月04日
    瀏覽(92)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包