• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于C++和MatLab混合編程的GM(1,1)模型實現(xiàn)與應(yīng)用

    2017-12-13 14:48:16陳婕
    電腦知識與技術(shù) 2017年33期
    關(guān)鍵詞:就業(yè)人數(shù)原始數(shù)據(jù)人才需求

    陳婕

    摘要:人才與經(jīng)濟發(fā)展有著密切的聯(lián)系,有效的人才需求預(yù)測能為宏觀調(diào)控提供依據(jù),有利于人力資源開發(fā)與經(jīng)濟增長的良性互動。該文分別采用C++和MatLab進行混合編程,實現(xiàn)了灰色系統(tǒng)理論的GM(1,1)模型,并應(yīng)用該程序?qū)κ迤陂g我國旅游人才需求進行了預(yù)測。

    關(guān)鍵詞:灰色系統(tǒng)理論;旅游人才預(yù)測;GM(1,1)

    中圖分類號:F590.2 文獻標(biāo)識碼:A 文章編號:1009-3044(2017)33-0124-03

    1 背景

    進入21世紀(jì)以來,伴隨居民收入水平的提高,我國出游人次不斷增長,2016年我國旅游人數(shù)達到45.78億人次,同比增長14.46%,。根據(jù)“十三五”旅游規(guī)劃,2020年國內(nèi)游人數(shù)有望達64億人次,2015-2020CAGR為9.86%;出境游人數(shù)有望達1.50億人次,2015-2020CAGR為5.09%。(數(shù)據(jù)來源:中國產(chǎn)業(yè)信息網(wǎng).2017年中國酒店行業(yè)發(fā)展現(xiàn)狀及中高端酒店發(fā)展趨勢分析)

    快速增加的旅游者數(shù)量,使得相關(guān)的旅游企業(yè)也得到了快速發(fā)展,根據(jù)國家旅游局統(tǒng)計數(shù)據(jù),截止2016年12月31日,我國有27856家旅行社,六百多個國家5A 級景區(qū),12213家星級酒店。旅游企業(yè)的發(fā)展,使得對旅游人才需求總量迅速增長,從專業(yè)招聘網(wǎng)站“前程無憂”和“智聯(lián)招聘”上的數(shù)據(jù)來看,2017年7月,僅北京、上海、廣州、深圳、南京5個城市旅游類相關(guān)企業(yè)共發(fā)布招聘信息112415條;中國旅游產(chǎn)業(yè)對GDP綜合貢獻10.8%,超過教育、銀行、汽車產(chǎn)業(yè),中國旅游就業(yè)人數(shù)占總就業(yè)人數(shù)10.2%(數(shù)據(jù)來源:中國國家旅游局.2015年中國旅游業(yè)統(tǒng)計公報)??梢钥闯?,我國旅游人才市場大致呈現(xiàn)一種供不應(yīng)求的局面,有必要對十三五期間旅游人才需求進行預(yù)測,這樣可以提高旅游業(yè)的服務(wù)質(zhì)量。

    2 需求總量預(yù)測理論模型及算法實現(xiàn)

    2.1 灰色預(yù)測GM(1,1)模型

    本次預(yù)測,采用的是灰色系統(tǒng)模型。所謂灰色系統(tǒng),是指既含有已知信息,又含有未知信息的系統(tǒng),是由鄧聚龍教授在1986年提出的。由于它具有所需因素少,模型簡單,運算方便,預(yù)測精度高等優(yōu)點,可以較好的對非線性系統(tǒng)進行預(yù)測。在旅游人才需求的預(yù)測系統(tǒng)中,人才總數(shù)、結(jié)構(gòu)等信息是已知的,但也受外界諸如:政治、經(jīng)濟、文化、科技、自然災(zāi)害等因素的影響,存在很大的不確定性,非常符合灰色系統(tǒng)的特點,所以可以用灰色系統(tǒng)理論對旅游人才需求進行預(yù)測。

    灰色系統(tǒng)常用的預(yù)測模型是GM(1,1)模型,GM(1,1)模型表示一階的、單變量的線性動態(tài)預(yù)測模型,其預(yù)測原理是將離散的隨機數(shù),經(jīng)過生成變成隨機性被顯著削弱的較有規(guī)律的生成數(shù),在此基礎(chǔ)上建立數(shù)學(xué)模型,建模步驟如下:

    1) 歷史數(shù)據(jù)的采集和累加序列的生成

    設(shè)研究對象的歷史數(shù)據(jù)為:

    []

    —般情況下,對于給定的原始數(shù)據(jù)列不能直接用于建模,因為這些數(shù)據(jù)多為隨機的、無規(guī)律的,為了減弱原始數(shù)據(jù)序列的波動性和隨機性,需對原始序列進行數(shù)據(jù)處理,即通過累加生成方式將原始數(shù)據(jù)列轉(zhuǎn)化為規(guī)律性較強的遞增數(shù)列,累加的規(guī)則是:將原始序列的第一個數(shù)據(jù)作為生成列的第一個數(shù)據(jù),將原始序列的第二個數(shù)據(jù)加到原始序列的第一個數(shù)據(jù)上,其和作為生成列的第二個數(shù)據(jù),將原始序列的第三個數(shù)據(jù)加到生成列的第二個數(shù)據(jù)上,其和作為生成列的第三個數(shù)據(jù),按此規(guī)則進行下去,便可得到生成列。

    設(shè)累加后生成的序列為:

    [X(1)=X(1)(1),X(1)(2),X(1)(3),...,X(1)(n)]

    上標(biāo)1表示一次累加,同理,可作m次累加:

    [X(m)(k)=i=1kX(m-1)(i)]

    其中對于非負(fù)的數(shù)據(jù)列,累加的次數(shù)越多,則隨機性弱化越明顯,規(guī)律性越增強,這樣就較容易用指數(shù)去逼近。經(jīng)過這樣的數(shù)據(jù)處理能達到兩個目的:一是弱化了原始數(shù)據(jù)列的隨機性,而找到了其變化的規(guī)律性;二是為建立動態(tài)模型提供了中間信息。

    累減,就是將原始序列前后兩個數(shù)據(jù)相減得到累減生成列。累減是累加的逆運算,累減可將累加生成列還原為非生成列,在建模中獲得增量信息。

    一次累減的公式為:

    [X(1)(k)=X(0)(k)-X(0)(k-1)]

    2) x0序列的準(zhǔn)光滑性檢驗和x1序列的準(zhǔn)指數(shù)規(guī)律檢測

    對原始數(shù)據(jù)經(jīng)過累加處理后,在建立模型前還必須對數(shù)列x0進行準(zhǔn)光滑性檢驗,并檢驗數(shù)列x1是否具有準(zhǔn)指數(shù)規(guī)律。

    3) 構(gòu)建GM(1,1)模型

    在第1步中已經(jīng)生成了X(0)和X(1)序列,則GM(1,1)模型相應(yīng)的微分方程為:

    [dX(1)dt+aX(1)=μ]

    其中:α稱為發(fā)展灰數(shù);μ稱為內(nèi)生控制灰數(shù)。

    設(shè)[α]為待估參數(shù)向量,

    [α=aμ]

    根據(jù)最小二乘法有:

    求解微分方程,即可得預(yù)測模型:

    2.2 模型的算法實現(xiàn)

    GM(1,1)模型的計算涉及矩陣運算,特別是求逆矩陣,相當(dāng)復(fù)雜和繁瑣,并且容易出錯,所以用手工計算去實現(xiàn)GM(1,1)模型顯然是不現(xiàn)實的,必須借助計算機進行運算,才能快速、準(zhǔn)確的獲得結(jié)果。我們采用的C++語言和MatLab相結(jié)合的方法來實現(xiàn)整個計算過程:用C++語言編程來處理原始數(shù)據(jù),累加數(shù)據(jù),進行x0序列的準(zhǔn)光滑性檢驗和x1序列的準(zhǔn)指數(shù)規(guī)律檢測,并自動生成計算發(fā)展灰數(shù)和內(nèi)生控制灰數(shù)MatLab的命令,然后用MatLab執(zhí)行這命令,得出發(fā)展灰數(shù)和內(nèi)生控制灰數(shù),再通過C++程序讀入這兩個數(shù)據(jù),最終得到預(yù)測結(jié)果。

    以下是算法的C++語言實現(xiàn),在DEV C++ 5中編譯通過。

    #include

    #include

    #include

    #include

    #include

    using namespace std;

    doublestrtofloat(string s)

    {double res=0;

    int flag=0,xs=0,ws=0;

    intjc=1;

    for(int i=0;i

    if(s[i]=='.'){

    flag=1;

    continue;}

    if(flag==0){

    res*=10;

    res+=s[i]-'0';}

    else{

    ws++;

    xs*=10;

    xs+=s[i]-'0';

    }}

    for(int j=0;j

    jc*=10;}

    res+=xs*1.0/jc;

    return res;}

    double **creatdim(inth,int w)

    {double **temp;

    inti,j;

    temp=new double *[h];

    for(i=0;i

    temp[i]= new double[w];

    for(i=0;i

    for(j=0;j

    temp[i][j]=0;

    return temp;}

    void free_space(double **table,introw,int col)//釋放空間

    {int i;

    for(i=0;i

    delete[]table[i]; //以行為單位釋放數(shù)值空間

    delete[]table; } //釋放行地址空間

    int check(double x0[],double x1[],intnum)

    {int i,f1=1,f2=1,ret=0;

    double *p=new double[num];

    double *r=new double[num];

    for(i=1;i

    p[i]=x0[i]/x1[i-1];

    for(i=1;i

    r[i]=x1[i]/x1[i-1];

    for(i=3;i

    if(p[i]>0.5){

    f1=0;

    break;}

    for(i=3;i

    if(r[i]<1 || r[i]>1.5){

    f2=0;

    break;}

    delete []p;

    delete []r;

    if(f1==0 && f2==0)ret=1;

    else if(f1==0)ret=2;

    else if(f2==0)ret=3;

    else ret = 0;

    return ret;}

    voidgetdata(double x0[],double x1[],intnum)

    {int i;

    ifstream fin;

    string str;

    fin.open("data.txt");

    for(i=0;i

    getline(fin,str);

    x0[i]=strtofloat(str);

    x1[i]=x0[i];}

    fin.close();

    for(i=1;i

    x1[i]=x1[i-1]+x1[i];}

    voidoutputmatlab(double **b,double **y,intnum)

    {int i;

    ofstreamfout("gm.m",ios_base::out);

    fout<<"clc;"<

    fout<<"b=[";

    for(i=0;i

    if(i

    elsefout<

    fout<<"];"<

    fout<<"y=[";

    for(i=0;i

    if(i

    elsefout<

    fout<<"];"<

    fout<<"bt=b';"<

    fout<<"c=bt*b;"<

    fout<<"d=inv(c);"<

    fout<<"e=d*bt;"<

    fout<<"f=e*y;"<

    fout<<"format long g;"<

    fout<<"f";

    fout.close();}

    voidoutputdata(double result[],int yearn)

    {int i;

    ofstreamfout("result.txt",ios_base::out);

    for(i=0;i

    fout<

    fout.close();}

    voidgeneratedata(double x0[],double x1[],double **b,double **y,intnum)

    {int i;

    for(i=0;i

    y[i][0]=x0[i+1];

    for(i=1;i

    b[i-1][0]=-(x1[i-1]+x1[i])/2;

    b[i-1][1]=1;}}

    double *forecast(double x1[],double a,doubleu,int yearn)

    {int i;

    double *result,rel;

    result=new double[yearn];

    result[0]=x1[0];

    rel=result[0];

    for(i=1;i

    result[i]=(x1[0]-u/a)*exp(-a*i)+u/a-rel;

    rel+=result[i];}

    return result;}

    int main(void)

    {double *x0,*x1;

    double *result;

    double **b,**y;

    doublea,u;

    inti,cret,num,yearn;

    cout<<"請輸入?yún)?shù)的個數(shù):";

    cin>>num;

    x0=new double[num];

    x1=new double[num];

    b=creatdim(num-1,2);

    y=creatdim(num-1,1);

    getdata(x0,x1,num);

    cret=check(x0,x1,num);

    if(cret==0){

    generatedata(x0,x1,b,y,num);

    outputmatlab(b,y,num);

    cout<<"已經(jīng)生成MATLAB文件,請運行之?。躰";

    cout<<"請輸入α和μ的值:";

    cin>>a>>u;

    cout<<"請輸入從起始年開始所需要預(yù)測的年數(shù):";

    cin>>yearn;

    result=forecast(x1,a,u,yearn);

    outputdata(result,yearn);

    cout<<"已經(jīng)生成結(jié)果文件!\n";

    delete []x0;

    delete []x1;

    delete []result;

    free_space(b,num-1,2);

    free_space(y,num-1,1); }

    else

    {if(cret==1)cout<<"準(zhǔn)光滑檢驗和準(zhǔn)指數(shù)規(guī)律檢驗均無法通過?。躰";

    if(cret==2)cout<<"準(zhǔn)光滑檢驗檢驗無法通過?。躰";

    if(cret==3)cout<<"準(zhǔn)指數(shù)規(guī)律檢驗無法通過?。躰";}

    getch();

    return 0;}

    2.3 旅游人才總需求預(yù)測應(yīng)用

    如表1所示,為2011年至2015年期間,全國旅游業(yè)直接從業(yè)人數(shù),其中2014年和2015年的直接就業(yè)人數(shù)是國家旅游局公布統(tǒng)計數(shù)據(jù),2011年至2013年的直接就業(yè)人數(shù)沒有公布過,是依據(jù)國家旅游局統(tǒng)計公布推算出來的,具體算法為:每年的旅游統(tǒng)計公報中旅游直接和間接就業(yè)人數(shù)占全國就業(yè)總?cè)藬?shù)的10%左右,而旅游直接就業(yè)人數(shù)占旅游直接和間接就業(yè)人數(shù)的35%左右,設(shè)旅游直接就業(yè)人數(shù)為T,全國就業(yè)總?cè)藬?shù)為P,則根據(jù)上述分析,有T=P*0.1*0.35,而每年的全國就業(yè)總?cè)藬?shù)可以從國家統(tǒng)計局網(wǎng)站上查到,所以我們可以得到表1。

    3 結(jié)束語

    灰色預(yù)測方法是經(jīng)濟預(yù)測中一種非常有效的方法,它不直接采用原始數(shù)據(jù)建模,而是將原始的、無規(guī)則的數(shù)據(jù)進行加工處理,使之變得有規(guī)律,然后利用生成后的數(shù)據(jù)列來分析建模。這正是灰色理論方法的特點之一,結(jié)果證明將灰色系統(tǒng)理論中的GM(1,1)模型引入行業(yè)人才需求的預(yù)測,所需要的原始數(shù)據(jù)不多(尤其對歷史數(shù)據(jù)個數(shù)較少的情況),容易采集,且具有預(yù)測精度較高,模型可檢驗,參數(shù)的計算方法較簡單等特點,是一個較為理想的人才預(yù)測方法。

    參考文獻:

    [1] 梁阜.山東省制造業(yè)人力資源需求量預(yù)測與分析[J].山東大學(xué)學(xué)報哲學(xué)社會科學(xué)版, 2008(5).

    [2] 楊震.德陽市“十一五”人才需求預(yù)測系統(tǒng)[D].成都: 四川大學(xué),2006.

    [3] 王新宇,方法林,宋益丹.江蘇旅游人才需求預(yù)測——基于灰色系統(tǒng)理論和一元回歸方程混合模型[J].中國商貿(mào),2012(5).

    猜你喜歡
    就業(yè)人數(shù)原始數(shù)據(jù)人才需求
    GOLDEN OPPORTUNITY FOR CHINA-INDONESIA COOPERATION
    2022年冬奧會冰雪體育人才需求與培養(yǎng)路徑研究
    冰雪運動(2021年4期)2021-11-20 05:56:38
    受特定變化趨勢限制的傳感器數(shù)據(jù)處理方法研究
    能源行業(yè)網(wǎng)絡(luò)安全人才需求與培養(yǎng)探討
    全新Mentor DRS360 平臺借助集中式原始數(shù)據(jù)融合及直接實時傳感技術(shù)實現(xiàn)5 級自動駕駛
    汽車零部件(2017年4期)2017-07-12 17:05:53
    德國就業(yè)人數(shù)創(chuàng)統(tǒng)一以來新高
    投資北京(2017年2期)2017-03-15 16:55:12
    中國海歸人才需求地圖
    留學(xué)(2015年10期)2015-12-16 12:35:06
    世界經(jīng)濟趨勢
    關(guān)于3D打印技術(shù)與技能人才需求的思考
    出版與印刷(2013年3期)2013-01-31 03:26:15
    中牟县| 伊金霍洛旗| 镇沅| 盐山县| 凤山市| 通化县| 天峻县| 塔城市| 乃东县| 昭苏县| 四平市| 北碚区| 平遥县| 布拖县| 汝阳县| 阿图什市| 察哈| 上饶市| 广德县| 宣汉县| 澳门| 陆丰市| 凌云县| 盘山县| 个旧市| 阳东县| 吴江市| 中西区| 建瓯市| 和林格尔县| 磴口县| 盈江县| 穆棱市| 民和| 同江市| 永修县| 阿克苏市| 兴城市| 游戏| 胶州市| 德昌县|