創新算法!BKA-Transformer-BiLSTM黑翅鳶優化算法多變量時間序列預測

創新算法!BKA-Transformer-BiLSTM黑翅鳶優化算法多變量時間序列預測

目錄

    • 創新算法!BKA-Transformer-BiLSTM黑翅鳶優化算法多變量時間序列預測
      • 預測效果
      • 基本介紹
      • BKA-Transformer-BiLSTM黑翅鳶優化算法多變量時間序列預測
        • 一、引言
          • 1.1、研究背景和意義
          • 1.2、研究現狀
          • 1.3、研究內容與論文結構
        • 二、相關理論基礎
          • 2.1、黑翅鳶優化算法(BKA)
          • 2.2、Transformer模型
          • 2.3、長短期記憶網絡(LSTM)
          • 2.4、多變量時間序列預測
        • 三、BKA-Transformer-BiLSTM模型設計
          • 3.1、模型總體架構
          • 3.2、數據預處理與特征提取
          • 3.3、基于BKA的超參數優化
          • 3.4、BiLSTM的時間序列預測
        • 四、實驗設計與結果分析
          • 4.1、實驗數據與評價指標
          • 4.2、模型訓練與參數設置
          • 4.3、結果展示與分析
        • 五、結論與展望
          • 5.1、研究總結
          • 5.2、研究限制與未來工作
      • 程序設計
      • 參考資料

預測效果

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

基本介紹

1.Matlab實現BKA-Transformer-BiLSTM多變量時間序列預測,BKA-Transformer-BiLSTM/程序可以作為SCI一區級論文代碼支撐,目前尚未發表);

黑翅鳶優化算法(Black-winged Kite Algorithm, BKA)具有獨特的生物啟發特征,引入了柯西變異策略,有助于算法跳出局部最優解,集成了一種領導策略,確保算法能夠有效利用當前的最佳解并指導搜索方向。

2.BKA優化參數為:學習率,隱含層節點,正則化參數,運行環境為Matlab2023b及以上;

3.data為數據集,輸入多個特征,輸出單個變量,考慮歷史特征的影響,多變量時間序列預測,main.m為主程序,運行即可,所有文件放在一個文件夾;

4.命令窗口輸出R2、MSE、RMSE、MAE、MAPE、MBE等多指標評價;

代碼中文注釋清晰,質量極高,贈送測試數據集,可以直接運行源程序。替換你的數據即可用 適合新手小白

BKA-Transformer-BiLSTM黑翅鳶優化算法多變量時間序列預測

一、引言
1.1、研究背景和意義

在當今數據驅動的時代,時間序列預測已成為數據分析和決策支持的重要組成部分。隨著工業4.0和物聯網技術的快速發展,各種傳感器和設備產生的數據量呈指數級增長,這些數據大多具有時間序列特性。因此,如何有效利用這些數據進行準確的時間序列預測,已成為學術界和工業界共同關注的焦點。

時間序列預測不僅可以幫助企業預測市場需求、優化庫存管理,還可以用于天氣預測、股票市場分析、能源消耗預測等多個領域。例如,在能源領域,準確預測電力負荷可以幫助電力公司優化電力生產與分配,減少能源浪費;在金融領域,準確的股票價格預測可以幫助投資者制定更有效的投資策略。因此,研究多變量時間序列預測方法具有重要的理論價值和實際應用前景。

1.2、研究現狀

近年來,隨著機器學習和深度學習技術的發展,時間序列預測方法取得了顯著的進展。特別是循環神經網絡(RNN)及其變種長短期記憶網絡(LSTM)和門控循環單元(GRU),因其在處理序列數據方面的優勢,已被廣泛應用于時間序列預測任務中。然而,這些方法在處理長序列和捕捉復雜依賴關系時仍存在局限性。

Transformer模型自2017年提出以來,在自然語言處理領域取得了巨大成功。其核心的自注意力機制能夠有效捕捉序列中的長期依賴關系。近年來,Transformer模型也被逐步應用于時間序列預測領域,并顯示出良好的性能。例如,Transformer模型在處理光伏功率預測和負荷預測等任務時,通過多頭注意力機制能夠有效捕捉數據中的復雜關系和長期依賴關系,從而提高了預測準確性。

盡管如此,Transformer模型在多變量時間序列預測中的應用仍面臨一些挑戰。例如,如何有效整合多變量信息、如何優化模型超參數等問題仍需進一步研究。此外,現有的優化算法在處理復雜問題時,容易陷入局部最優,無法找到全局最優解。因此,研究新的優化算法以提高模型性能顯得尤為重要。

1.3、研究內容與論文結構

本文提出了一種新的多變量時間序列預測模型——BKA-Transformer-BiLSTM。該模型結合了黑翅鳶優化算法(BKA)、Transformer模型和雙向長短期記憶網絡(BiLSTM)的優勢,旨在提高預測準確性和模型泛化能力。具體而言,本文首先對黑翅鳶優化算法進行介紹,然后詳細闡述BKA-Transformer-BiLSTM模型的構建過程。

二、相關理論基礎
2.1、黑翅鳶優化算法(BKA)

黑翅鳶優化算法(BKA)是一種新型的元啟發式優化算法,靈感來源于黑翅鳶的遷徙和捕食行為。BKA通過模擬黑翅鳶在飛行和捕食過程中的行為,實現對搜索空間的探索和開發,從而找到全局最優解。該算法具有參數少、易于實現、全局搜索能力強等優點,已在多個領域得到成功應用。

在BKA中,每個個體代表一個潛在的解,通過更新個體的位置來實現優化。具體而言,BKA包括兩個主要階段:探索階段和開發階段。在探索階段,個體通過隨機飛行來探索搜索空間,尋找潛在的最優解;在開發階段,個體通過追隨當前最優解來進一步優化位置。這種機制使得BKA在保持全局搜索能力的同時,也能夠進行有效的局部開發,從而提高了優化性能。

BKA算法的具體實現過程如下:

  1. 初始化種群:隨機生成初始種群,每個個體代表一個潛在的解。
  2. 適應度評估:計算每個個體的適應度值,并根據適應度值選擇當前最優解。
  3. 個體位置更新:根據黑翅鳶的飛行和捕食行為,更新個體的位置。具體而言,個體的位置更新公式如下:

x i t + 1 = x i t + r 1 ? A 1 ? ( x b e s t t ? x i t ) + r 2 ? A 2 ? ( x r a n d t ? x i t ) x_{i}^{t+1} = x_{i}^{t} + r_1 \cdot A_1 \cdot (x_{best}^{t} - x_{i}^{t}) + r_2 \cdot A_2 \cdot (x_{rand}^{t} - x_{i}^{t}) xit+1?=xit?+r1??A1??(xbestt??xit?)+r2??A2??(xrandt??xit?)

其中, x i t x_i^t xit?表示第 i i i個個體在 t t t時刻的位置, x b e s t t x_{best}^t xbestt?表示當前最優解的位置, x r a n d t x_{rand}^t xrandt?表示隨機選擇的一個個體的位置, r 1 r_1 r1? r 2 r_2 r2?是兩個隨機數, A 1 A_1 A1? A 2 A_2 A2?是兩個控制探索和開發行為的參數。
4. 終止條件判斷:如果達到預設的迭代次數或適應度值達到預設閾值,則停止迭代;否則,返回步驟2。

2.2、Transformer模型

Transformer模型是一種基于自注意力機制的神經網絡結構,最初為處理自然語言處理任務而設計。Transformer模型通過多頭自注意力機制,能夠有效捕捉輸入序列中的長期依賴關系。與傳統的循環神經網絡相比,Transformer模型在處理長序列時具有更高的效率和更好的性能。

Transformer模型主要由編碼器和解碼器組成。編碼器由多個相同的層堆疊而成,每一層包括多頭自注意力機制和前饋神經網絡。解碼器也由多個相同的層堆疊而成,每一層包括多頭自注意力機制、掩碼多頭自注意力機制和前饋神經網絡。通過這種結構,Transformer模型能夠并行處理輸入序列中的所有元素,從而提高訓練效率。

多頭自注意力機制是Transformer模型的核心組成部分。它允許模型同時關注輸入序列中的不同位置,從而捕捉不同位置之間的依賴關系。具體而言,多頭自注意力機制將輸入序列映射到多個不同的子空間中,并在每個子空間中進行自注意力計算。最后,將各個子空間中的注意力結果進行合并,得到最終的注意力輸出。

2.3、長短期記憶網絡(LSTM)

長短期記憶網絡(LSTM)是一種特殊的循環神經網絡,通過引入門控機制來解決傳統RNN在處理長序列時的梯度消失和梯度爆炸問題。LSTM通過記憶細胞和控制門(輸入門、遺忘門、輸出門)來管理信息的流動,從而能夠有效捕捉時間序列中的長期依賴關系。

LSTM的核心是記憶細胞,它通過三個門控單元來控制信息的輸入、遺忘和輸出。輸入門控制新信息進入記憶細胞的程度,遺忘門控制記憶細胞中需要保留的信息量,輸出門控制記憶細胞輸出的信息量。通過這種機制,LSTM能夠在不同時間步之間傳遞和更新信息,從而捕捉時間序列中的長期依賴關系。

具體而言,LSTM在時刻 t t t的更新公式如下:

  1. 輸入門:

i t = σ ( W i ? [ h t ? 1 , x t ] + b i ) i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i) it?=σ(Wi??[ht?1?,xt?]+bi?)

其中, i t i_t it?表示輸入門的激活值, σ \sigma σ表示sigmoid激活函數, W i W_i Wi? b i b_i bi?表示輸入門的權重和偏置, h t ? 1 h_{t-1} ht?1?表示上一時刻的隱藏狀態, x t x_t xt?表示當前時刻的輸入。
2. 遺忘門:

f t = σ ( W f ? [ h t ? 1 , x t ] + b f ) f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) ft?=σ(Wf??[ht?1?,xt?]+bf?)

其中, f t f_t ft?表示遺忘門的激活值, W f W_f Wf? b f b_f bf?表示遺忘門的權重和偏置。
3. 記憶細胞更新:

c t = f t ? c t ? 1 + i t ? tanh ? ( W c ? [ h t ? 1 , x t ] + b c ) c_t = f_t \cdot c_{t-1} + i_t \cdot \tanh(W_c \cdot [h_{t-1}, x_t] + b_c) ct?=ft??ct?1?+it??tanh(Wc??[ht?1?,xt?]+bc?)

其中, c t c_t ct?表示當前時刻的記憶細胞狀態, tanh ? \tanh tanh表示雙曲正切激活函數, W c W_c Wc? b c b_c bc?表示記憶細胞更新的權重和偏置。
4. 輸出門:

o t = σ ( W o ? [ h t ? 1 , x t ] + b o ) o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o) ot?=σ(Wo??[ht?1?,xt?]+bo?)

其中, o t o_t ot?表示輸出門的激活值, W o W_o Wo? b o b_o bo?表示輸出門的權重和偏置。
5. 隱藏狀態更新:

h t = o t ? tanh ? ( c t ) h_t = o_t \cdot \tanh(c_t) ht?=ot??tanh(ct?)

其中, h t h_t ht?表示當前時刻的隱藏狀態。

2.4、多變量時間序列預測

多變量時間序列預測是指對多個相關的時間序列同時進行預測。與單變量時間序列預測相比,多變量時間序列預測需要考慮變量之間的復雜關系和相互作用,從而提高了預測的難度和準確性。

在多變量時間序列預測中,不同變量之間可能存在線性或非線性的依賴關系。近年來,隨著機器學習和深度學習技術的發展,基于神經網絡的多變量時間序列預測方法逐漸成為研究熱點。這些方法能夠有效捕捉變量之間的復雜依賴關系,從而提高預測準確性。

三、BKA-Transformer-BiLSTM模型設計
3.1、模型總體架構

BKA-Transformer-BiLSTM模型結合了黑翅鳶優化算法、Transformer模型和雙向長短期記憶網絡的優點,旨在提高多變量時間序列預測的性能。

首先,原始數據經過預處理和特征提取步驟,轉換為適合模型輸入的格式。接著,Transformer編碼器對提取的特征進行編碼,捕捉數據中的長期依賴關系和復雜關系。然后,將編碼后的特征輸入到BiLSTM網絡中,進一步捕捉時間序列中的雙向依賴關系。最后,通過全連接層輸出預測結果。

3.2、數據預處理與特征提取

在構建預測模型之前,數據預處理和特征提取是至關重要的步驟。數據預處理包括數據歸一化和時間序列劃分等步驟。

3.3、基于BKA的超參數優化

Transformer模型的性能在很大程度上取決于其超參數的選擇。為了優化模型的超參數,本文采用黑翅鳶優化算法進行超參數優化。具體而言,將模型的超參數作為BKA算法的優化變量,通過適應度函數評估不同超參數組合的性能,并尋找最優超參數組合。

在BKA優化過程中,適應度函數的選擇至關重要。適應度函數用于評估每個超參數組合的性能,通常采用預測誤差作為適應度值。具體而言,可以使用均方根誤差(RMSE)指標作為適應度值。通過最小化適應度值,BKA算法能夠找到最優的超參數組合,從而提高Transformer模型的預測性能。

3.4、BiLSTM的時間序列預測

雙向長短期記憶網絡(BiLSTM)是一種能夠捕捉時間序列雙向依賴關系的神經網絡模型。通過將Transformer編碼后的特征輸入到BiLSTM網絡中,可以進一步捕捉時間序列中的復雜依賴關系,提高預測準確性。

BiLSTM由兩個方向的LSTM網絡組成:一個前向LSTM網絡和一個后向LSTM網絡。前向LSTM網絡從時間序列的開始到結束進行處理,而后向LSTM網絡從時間序列的結束到開始進行處理。通過這種雙向處理機制,BiLSTM能夠充分利用時間序列中的歷史信息和未來信息,從而提高預測性能。

具體而言,BiLSTM在時刻 t t t的隱藏狀態由前向LSTM網絡和后向LSTM網絡的隱藏狀態共同決定。假設前向LSTM網絡的隱藏狀態為 h → t \overrightarrow{h}_t h t?,后向LSTM網絡的隱藏狀態為 h ← t \overleftarrow{h}_t h t?,則BiLSTM在時刻 t t t的隱藏狀態為:

h t = [ h → t , h ← t ] h_t = [\overrightarrow{h}_t, \overleftarrow{h}_t] ht?=[h t?,h t?]

其中, [ ? , ? ] [\cdot, \cdot] [?,?]表示拼接操作。通過這種雙向隱藏狀態,BiLSTM能夠同時捕捉時間序列中的過去和未來信息,從而提高預測準確性。

四、實驗設計與結果分析
4.1、實驗數據與評價指標

為了驗證BKA-Transformer-BiLSTM模型的有效性,在實驗過程中,選擇均方誤差(MSE)、均方根誤差(RMSE)和平均絕對誤差(MAE)作為評價指標。這些指標能夠直觀地反映預測結果與實際值之間的誤差,從而評估模型的預測性能。

4.2、模型訓練與參數設置

在模型訓練過程中,首先對數據進行預處理和特征提取,然后將處理后的數據輸入到BKA-Transformer-BiLSTM模型中。模型訓練的具體步驟如下:

數據預處理:對原始數據進行歸一化和時間序列劃分,得到訓練集和測試集。
模型訓練:將處理后的數據輸入到BKA-Transformer-BiLSTM模型中,進行訓練。在訓練過程中,使用BKA算法優化Transformer模型的超參數,以提高模型性能。
模型測試:使用測試集對最優模型進行性能測試,并計算評價指標。

4.3、結果展示與分析

實驗結果表明,BKA-Transformer-BiLSTM模型在多個時間序列預測任務中均表現出優異的性能。

五、結論與展望
5.1、研究總結

本文提出了一種新的多變量時間序列預測模型——BKA-Transformer-BiLSTM。該模型結合了黑翅鳶優化算法、Transformer模型和雙向長短期記憶網絡的優點,旨在提高預測準確性和模型泛化能力。實驗結果表明,BKA-Transformer-BiLSTM模型在多個時間序列預測任務中均表現出優異的性能,顯示出較高的預測準確性和泛化能力。

具體而言,本文的主要貢獻包括:

  1. 提出了一種新的多變量時間序列預測模型BKA-Transformer-BiLSTM,結合了黑翅鳶優化算法、Transformer模型和雙向長短期記憶網絡的優點。
  2. 利用黑翅鳶優化算法對Transformer模型的超參數進行優化,提高了模型的預測性能。
  3. 通過實驗驗證了BKA-Transformer-BiLSTM模型的有效性,并與其他先進模型進行了對比分析。
5.2、研究限制與未來工作

盡管BKA-Transformer-BiLSTM模型在時間序列預測任務中表現出較高的性能,但仍存在一些局限性。例如,模型的計算復雜度較高,訓練時間較長。此外,模型在處理非常長的時間序列時,可能面臨內存不足的問題。

未來的研究工作可以從以下幾個方面進行:

  1. 優化模型結構,降低計算復雜度和訓練時間。例如,可以研究更高效的注意力機制和神經網絡結構,以提高模型的訓練效率和預測性能。
  2. 探索更多的應用領域。例如,可以將BKA-Transformer-BiLSTM模型應用于金融、醫療、交通等領域,驗證其泛化能力和實際應用效果。
  3. 研究新的優化算法,以提高模型的預測性能和泛化能力。例如,可以結合其他元啟發式優化算法,如灰狼優化算法、鯨魚優化算法等,進一步提升模型的優化效果。

總之,BKA-Transformer-BiLSTM模型在多變量時間序列預測任務中顯示出較高的預測準確性和泛化能力,具有廣闊的應用前景。未來研究可以通過優化模型結構和探索新的應用領域,進一步提高模型的性能和實際應用效果。

程序設計

  • 完整源碼和數據獲取方式私信回復創新算法!BKA-Transformer-BiLSTM黑翅鳶優化算法多變量時間序列預測
%%  清空環境變量
warning off             % 關閉報警信息
close all               % 關閉開啟的圖窗
clear                   % 清空變量
clc                     % 清空命令行%%  導入數據
result = xlsread('數據集.xlsx');%%  數據分析
num_samples = length(result);  % 樣本個數
kim = 2;                       % 延時步長(前面多行歷史數據作為自變量)
zim =  1;                      % 跨zim個時間點進行預測
nim = size(result, 2) - 1;     % 原始數據的特征是數目%%  劃分數據集
for i = 1: num_samples - kim - zim + 1res(i, :) = [reshape(result(i: i + kim - 1 + zim, 1: end - 1)', 1, ...(kim + zim) * nim), result(i + kim + zim - 1, end)];
end%%  數據集分析
outdim = 1;                                  % 最后一列為輸出
num_size = 0.7;                              % 訓練集占數據集比例
num_train_s = round(num_size * num_samples); % 訓練集樣本個數
f_ = size(res, 2) - outdim;                  % 輸入特征長度%%  劃分訓練集和測試集
P_train = res(1: num_train_s, 1: f_)';
T_train = res(1: num_train_s, f_ + 1: end)';
M = size(P_train, 2);P_test = res(num_train_s + 1: end, 1: f_)';
T_test = res(num_train_s + 1: end, f_ + 1: end)';
N = size(P_test, 2);%%  數據歸一化
[p_train, ps_input] = mapminmax(P_train, -1, 1);%將訓練集和測試集的數據調整到01之間
p_test = mapminmax('apply', P_test, ps_input);[t_train, ps_output] = mapminmax(T_train, -1, 1);% 對測試集數據做歸一化
t_test = mapminmax('apply', T_test, ps_output);%%  數據平鋪
%   將數據平鋪成1維數據只是一種處理方式
%   也可以平鋪成2維數據,以及3維數據,需要修改對應模型結構
%   但是應該始終和輸入層數據結構保持一致
p_train =  double(reshape(p_train, f_, 1, 1, M));
p_test  =  double(reshape(p_test , f_, 1, 1, N));
t_train =  double(t_train)';
t_test  =  double(t_test )';%%  數據格式轉換
for i = 1 : MLp_train{i, 1} = p_train(:, :, 1, i);
endfor i = 1 : NLp_test{i, 1}  = p_test( :, :, 1, i);
end

參考資料

[1] https://blog.csdn.net/kjm13182345320/article/details/128577926?spm=1001.2014.3001.5501
[2] https://blog.csdn.net/kjm13182345320/article/details/128573597?spm=1001.2014.3001.5501

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/71722.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/71722.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/71722.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

leetcode 95.不同的二叉搜索樹 Ⅱ

首先分析一下什么是二叉搜索樹。因為我本科學習數據結構的時候就是單純背了一下題庫,考試非常簡單。現在額外補充學一些之前自己沒有學過的內容。有序向量可以二分查找,列表可以快速插入和刪除。二叉搜索樹可以實現按照關鍵碼訪問。call by key .數據表現…

數據安全防線:備份文件的重要性與自動化實踐

在數字化時代,信息已成為企業運營和個人生活的核心資源。無論是企業的核心數據、客戶的敏感信息,還是個人的珍貴照片、重要文檔,這些數據一旦丟失或受損,都可能帶來不可估量的損失。因此,備份文件的重要性不言而喻&…

碰一碰發視頻系統之寫卡功能開發了,支持OEM

一、引言 在碰一碰發視頻系統中,NFC(Near Field Communication,近場通信)技術扮演著關鍵角色。其中,寫卡功能是實現用戶與系統便捷交互的重要環節,通過將特定的視頻相關信息寫入 NFC 標簽,用戶…

【數據結構初階第十八節】八大排序系列(上篇)—[詳細動態圖解+代碼解析]

看似不起眼的日復一日,總會在某一天讓你看到堅持的意義。??????云邊有個稻草人-CSDN博客 hello,好久不見! 目錄 一. 排序的概念及運用 1. 概念 2. 運用 3. 常見排序算法 二. 實現常見排序算法 1. 插入排序 (1&…

python爬蟲系列課程8:js瀏覽器window對象屬性

python爬蟲系列課程8:js瀏覽器window對象屬性 一、JavaScript的組成二、document常見屬性對象三、navigator對象一、JavaScript的組成 JavaScript可以分為三個部分:ECMAScript標準、DOM、BOM。 ECMAScript標準:即JS的基本語法,JavaScript的核心,描述了語言的基本語法和數…

快速使用PPASR V3版不能語音識別框架

前言 本文章主要介紹如何快速使用PPASR語音識別框架訓練和推理,本文將致力于最簡單的方式去介紹使用,如果使用更進階功能,還需要從源碼去看文檔。僅需三行代碼即可實現訓練和推理。 源碼地址:https://github.com/yeyupiaoling/P…

cannon g3810打印機設置

現在AI這么厲害,是不是很少人來這里搜索資料了。 不過我還是寫一下。 買了一臺cannon g3810打印機。一直都用USB打印,今天突然想用手機打印。于是又折騰了兩個小時,終于折騰完了。 步驟如下: [1]打開官網,下載佳能…

使用 Arduino 和 ThingSpeak 通過 Internet 進行心跳監測

使用 Arduino 和 ThingSpeak 通過 Internet 進行心跳監測 在這個項目中,我們將使用 Arduino 制作一個心跳檢測和監測系統,該系統將使用脈搏傳感器檢測心跳,并在與其連接的 LCD 上顯示 BPM(每分鐘心跳次數)讀數。它還將使用 Wi-Fi 模塊ESP8266將讀數發送到 ThingSpeak 服務…

vulnhub靶場之【digitalworld.local系列】的snakeoil靶機

前言 靶機:digitalworld.local-snakeoil,IP地址為192.168.10.11 攻擊:kali,IP地址為192.168.10.6 kali采用VMware虛擬機,靶機選擇使用VMware打開文件,都選擇橋接網絡 這里官方給的有兩種方式&#xff0…

自行車的主要品牌

一、國際知名品牌(專注運動與高端市場) 捷安特(GIANT) 臺灣品牌,全球最大自行車制造商之一,覆蓋山地車、公路車、通勤車等多品類。 美利達(MERIDA) 臺灣品牌,以山地車…

C語言(隊列)

1、隊列的原理和作用 1、1 隊列的原理 隊列的原理其實就像一個管道,如果我們不斷的往管道里塞乒乓球,每個乒乓球在管道里就會排列一條隊列,先進去的乒乓球會先出來,這個就是隊列先進先出的規則 球從左邊進去的動作叫入列&#xf…

【C++算法】AVL樹的平衡之美:從理論到C++高效實現

AVL樹是一種自平衡二叉搜索樹,解決了普通二叉搜索樹在數據傾斜時的性能退化問題。本文深入探討了AVL樹的理論基礎,包括平衡因子的定義、旋轉操作的數學推導,并通過LaTeX公式分析其時間復雜度。接著,我們用C++實現了一個完整的AVL樹,包括插入、刪除和平衡調整的詳細代碼,附…

黑金風格人像靜物戶外旅拍Lr調色教程,手機濾鏡PS+Lightroom預設下載!

調色教程 針對人像、靜物以及戶外旅拍照片,運用 Lightroom 軟件進行風格化調色工作。旨在通過軟件中的多種工具,如基本參數調整、HSL(色相、飽和度、明亮度)調整、曲線工具等改變照片原本的色彩、明度、對比度等屬性,將…

ESP8266 NodeMCU 與 Atmega16 微控制器連接以發送電子郵件

NodeMCU ESP8266 AVR 微控制器 ATmega16 的接口 Atmega16 是一款低成本的 8 位微控制器,比以前版本的微控制器具有更多的 GPIO。它具有所有常用的通信協議,如 UART、USART、SPI 和 I2C。由于其廣泛的社區支持和簡單性,它在機器人、汽車和自動化行業有廣泛的應用。 Atmega1…

【Hadoop】詳解HDFS

Hadoop 分布式文件系統(HDFS)被設計成適合運行在通用硬件上的分布式文件系統,它是一個高度容錯性的系統,適合部署在廉價的機器上,能夠提供高吞吐量的數據訪問,非常適合大規模數據集上的應用。為了做到可靠性,HDFS創建了…

2025 批量下載市場高標解讀/配置喵/wangdizhe 雪球帖子/文章導出excel和pdf

之前分享過文章2025 批量下載雪球和東方財富文章導出excel和pdf ,今天整理分享下我下載過的一些雪球文章。 第1個號市場高標解讀 抓取下載的所有帖子excel數據包含文章日期,文章標題,文章鏈接,文章簡介,點贊數&#…

2022年《申論》第二題(河北A卷)

材料: “社區很大,共有安置房148棟,安置人口2.9萬人。人員眾多,而且原來都來自農村,群眾生活環境變化大,不適應。”春林易地搬遷安置點建成使用后,老單便來這里擔任春林街道辦主任。如何有效治…

Qt中實現多個QMainWindow同時顯示

在Qt中實現多個QMainWindow同時顯示,可通過以下方法實現: 一、直接顯示多個實例 必須使用new創建堆對象,避免棧對象因作用域結束被銷毀?。 int main(int argc, char *argv[]) {QApplication a(argc, argv);// 創建兩個獨立的主窗口QMainW…

從運動手環到醫療貼片,精密校平機正在重塑柔性電子器件的工業化生產標準

在柔性電子器件的制造領域,從運動手環到醫療貼片,精密校平機的應用正引領一場生產標準的變革。傳統的柔性電子器件生產過程中,材料的平整度控制往往不夠精確,導致產品質量參差不齊。然而,隨著精密校平機的引入&#xf…

AIP-161 域掩碼

編號161原文鏈接AIP-161: Field masks狀態批準創建日期2021-03-01更新日期2021-03-01 在(使用AIP-134的Update或類似方法)更新資源時,通常需要明確指定哪些域需要更新。服務可以忽略另外的域,即使用戶發送了值。 定義一種掩碼格…