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

數(shù)學建模--退火算法求解最值的Python實現(xiàn)

這篇具有很好參考價值的文章主要介紹了數(shù)學建模--退火算法求解最值的Python實現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1.算法流程簡介

2.算法核心代碼

3.算法效果展示

1.算法流程簡介

"""
1.設(shè)定退火算法的基礎(chǔ)參數(shù)
2.設(shè)定需要優(yōu)化的函數(shù),求解該函數(shù)的最小值/最大值
3.進行退火過程,隨機產(chǎn)生退火解并且糾正,直到冷卻
4.繪制可視化圖片進行了解退火整體過程
"""

2.算法核心代碼

#利用退火算法求解函數(shù)的極值(優(yōu)化問題)
import numpy as np
from random import random
import random
import math
import matplotlib.pyplot as plt
#設(shè)定退火算法的基礎(chǔ)參數(shù)
x_min,x_max=(-3,3)#x的取值范圍
alpha=0.99#降溫系數(shù)為0.99
bg_temp=100#起始溫度
ed_temp=0.01#最終溫度(可設(shè)可不設(shè))
cycle_number=500#循環(huán)次數(shù)
#設(shè)定需要優(yōu)化的函數(shù),求解該函數(shù)的最小值
"""
需要運用的化直接修改函數(shù)即可.
不過需要注意定義域的問題,主動修改一下定義域就行
"""
def opt_fun(x):
    y=11*np.sin(2*x)+7*np.cos(5*x)
    return y
#由于沒有具體的數(shù)據(jù),我們直接隨機設(shè)置值就行隨機產(chǎn)生初始值

#隨機產(chǎn)生本次退火解
def new_result(x):
    x1=x+bg_temp*random.uniform(-1,1)
    #退火解的合理性檢查并且糾正:
    if  x_min<=x1<=x_max:
        return x1
    elif x1<x_min:
        add_min=random.uniform(-1,1)
        return add_min*x_min+(1-add_min)*x
    else:
        add_max=random.uniform(-1,1)
        return add_max*x_max+(1-add_max)*x
def draw_picture(x):
    plt.cla()
    #繪圖的時候這里可以進行修改
    #注意這里y的取值范圍[-25,25]要大體預(yù)估一下
    plt.axis([x_min-1,x_max+1,-25,25])
    m=np.arange(x_min,x_max,0.0001)
    plt.plot(m,opt_fun(m),color='red')
    plt.plot(x,opt_fun(x),marker='*',color='b',markersize='8')
    plt.title('Current Temperature={}'.format(T))
    plt.pause(0.1)

#設(shè)定接受概率函數(shù)
def p(x,x1):
    return math.exp(-abs(opt_fun(x)-opt_fun(x1))/T)

#循環(huán)退火過程,直到冷卻求出最優(yōu)解
def Annealing_cycle():
    global T
    count_number=0
    T=bg_temp
    x=random.uniform(x_min,x_max)
    print("*******************************************************************************************************************")
    while T>ed_temp:
        draw_picture(x)
        for i in range(cycle_number):
            x1=new_result(x)
            #求解最小值的過程
            if opt_fun(x)>=opt_fun(x1):
                x=x1
            else:
                if random.random()<=p(x,x1):
                    x=x1
                else:
                    continue
        T=T*alpha
        count_number=count_number+1
        print("當前執(zhí)行第{}".format(count_number),"次退火過程","  當前退火溫度為:{}".format(T),"  當前最優(yōu)值:{}".format(opt_fun(x)))
    print("*******************************************************************************************************************")
    print("本次退火優(yōu)化過程共執(zhí)行{}".format(count_number),"次求得的最優(yōu)解為:{}".format(opt_fun(x)))
    print("*******************************************************************************************************************")
Annealing_cycle()

3.算法效果展示

數(shù)學建模--退火算法求解最值的Python實現(xiàn),數(shù)學建模,數(shù)學建模,python,算法文章來源地址http://www.zghlxwxcb.cn/news/detail-707149.html

數(shù)學建模--退火算法求解最值的Python實現(xiàn),數(shù)學建模,數(shù)學建模,python,算法

到了這里,關(guān)于數(shù)學建模--退火算法求解最值的Python實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【數(shù)學建模學習(9):模擬退火算法】

    【數(shù)學建模學習(9):模擬退火算法】

    模擬退火算法(Simulated Annealing, SA)的思想借 鑒于固體的退火原理,當固體的溫度很高的時候,內(nèi)能比 較大,固體的內(nèi)部粒子處于快速無序運動,當溫度慢慢降 低的過程中,固體的內(nèi)能減小,粒子的慢慢趨于有序,最 終,當固體處于常溫時,內(nèi)能達到最小,此時,粒子最為 穩(wěn)

    2024年02月14日
    瀏覽(21)
  • 數(shù)學建模(三):模擬退火算法(SA)

    數(shù)學建模(三):模擬退火算法(SA)

    1、 算法簡介 模擬退火算法(simulated annealing,SA)來源于固體退火原理,是一種基于概率的算法。 模擬退火算法(SA)來源于固體退火原理,是一種基于概率的算法。將固體加溫至充分高的溫度,再讓其徐徐冷卻,加溫時,固體內(nèi)部粒子隨溫升變?yōu)闊o序狀,內(nèi)能增大,分子和原

    2023年04月17日
    瀏覽(25)
  • Matlab數(shù)學建模算法之模擬退火算法(SA)詳解

    ???運行環(huán)境:Matlab ???撰寫作者:左手の明天 ???精選專欄:《python》 ????推薦專欄:《算法研究》 ??####? 防偽水印——左手の明天?#### ?? ?? 大家好??????,我是 左手の明天 !好久不見?? ??今天分享 matlab數(shù)學建模算法 —— 模擬退火算法 ??

    2024年01月16日
    瀏覽(26)
  • 【數(shù)學建模】《實戰(zhàn)數(shù)學建模:例題與講解》第十四講-模擬退火、遺傳算法(含Matlab代碼)

    【數(shù)學建模】《實戰(zhàn)數(shù)學建模:例題與講解》第十四講-模擬退火、遺傳算法(含Matlab代碼)

    本系列側(cè)重于例題實戰(zhàn)與講解,希望能夠在例題中理解相應(yīng)技巧。文章開頭相關(guān)基礎(chǔ)知識只是進行簡單回顧,讀者可以搭配課本或其他博客了解相應(yīng)章節(jié),然后進入本文正文例題實戰(zhàn),效果更佳。 如果這篇文章對你有幫助,歡迎點贊與收藏~ 現(xiàn)代優(yōu)化算法,自20世紀80年代初開

    2024年02月04日
    瀏覽(27)
  • 【數(shù)學建?!磕M退火全解析

    【數(shù)學建模】模擬退火全解析

    和局部束搜索相反,模擬退火將最優(yōu)化策略改變,引入隨機噪聲,不一定每次都是最優(yōu),但是內(nèi)部機制保證了最終的走向是最優(yōu),總的過程可以理解為初期廣泛探索(Exploration),逐步過渡到深挖(Exploitation)。其中機理比較復雜,我們逐步去理解。 首先聲明,我們這里還是

    2024年02月02日
    瀏覽(25)
  • 數(shù)學建?!M退火優(yōu)化投影尋蹤

    數(shù)學建?!M退火優(yōu)化投影尋蹤

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 ??在考慮綜合評價的時候,我們使用了各自主觀、客觀的方法去求解權(quán)重,客觀權(quán)重的計算依靠著數(shù)據(jù)本身的分布來決定,有時候會出現(xiàn)各種各樣不可抗拒的意外情況,其中在熵權(quán)法的解釋在就有提到

    2024年02月11日
    瀏覽(16)
  • 數(shù)學建模之模擬退火法(SA)

    數(shù)學建模之模擬退火法(SA)

    模擬退火算法(SA)是一種模擬物理退火過程而設(shè)計的優(yōu)化算法。 它的基本思想最早在1953年就被Metropolis提出,但直到1983年,Kirkpatrick等人才設(shè)計出真正意義上的模擬退火算法并進行應(yīng)用。 模擬退火算法采用類似于 物理退火 的過程。先在一個高溫狀態(tài)下,然后逐漸退火,在

    2024年01月17日
    瀏覽(28)
  • 數(shù)學建模--Lingo求解線性規(guī)劃問題

    數(shù)學建模--Lingo求解線性規(guī)劃問題

    一 問題重述 1.1問題背景 工廠根據(jù)外部需求和內(nèi)部設(shè)備,人力,原料等條件,以及最大利潤為生產(chǎn)目標制定生產(chǎn)計劃,根據(jù)生產(chǎn)計劃,工藝流程,資源約束及費用參數(shù)等,以最小的成本為目標制定生產(chǎn)批量計劃,若短時間外部需求和內(nèi)部資源等不隨時間的變化,可制定單階段

    2024年02月12日
    瀏覽(32)
  • 數(shù)學建模1:lingo軟件求解優(yōu)化模型

    數(shù)學建模1:lingo軟件求解優(yōu)化模型

    本次數(shù)學建模學習筆記系列,以代碼學習為主,附帶建模及論文亮點記錄 由于隊友為兩位經(jīng)濟學小伙伴,因此以大數(shù)據(jù)類型題目為主要學習方向 注:論文代碼資料來源網(wǎng)絡(luò) 1、結(jié)構(gòu)清晰(后附該論文前兩問的目錄結(jié)構(gòu)) 2、lingo求解優(yōu)化模型,涉及函數(shù)循環(huán)與求和 3、表格很好

    2024年02月08日
    瀏覽(20)
  • 數(shù)學建模--非整數(shù)規(guī)劃求解的Python實現(xiàn)

    數(shù)學建模--非整數(shù)規(guī)劃求解的Python實現(xiàn)

    目錄 1.算法流程簡介 2.算法核心代碼 3.算法效果展示

    2024年02月10日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包