Một số thuật toán bậc cao

Một phần của tài liệu ứng dụng mô hình chuỗi thời gian mờ bậc cao trong dự báo (Trang 38 - 45)

3.2.2.1 Thuật toán bậc cao của Chen [10]

Chen đề xuất mô hình chuỗi thời gian mờ bậc cao nhƣ sau:

1. Xác định tập U bao gồm khoảng giá trị của chuỗi thời gian. Khoảng này xác

định từ giá trị nhỏ nhất đến giá trị lớn nhất có thể của chuỗi thời gian. 2. Chia khoảng giá trị và xác định các tập mờ trên tập U

3. Mờ hoá các dữ liệu chuỗi thời gian

4. Thiết lập các mối quan hệ mờ, thí dụ nhƣ mối quan hệ mờ bậc 2 nhƣ sau: giá

trị tại thời điểm t-2 và t-1 của chuỗi thời gian mờ tƣơng ứng là Ai1Ai2 còn giá trị tại thời điểm t là Aj.Khi đó ta xác định mối quan hệ mờ Ai1,Ai2 Aj.

5. Dự báo và giải mờ. Trong bƣớc này giải mờ các kết quả và dự báo đƣợc thực hiện nhƣ sau:

- Nếu bậc k =2 có mối quan hệ logic là Ai1,Ai2 Ajvà giá trị hàm thuộc của Aj

đạt giá trị maximum tại đoạn uivà điểm giữa của uimithì dự báo của chuỗi thời gian tại thời điểm i là mi.

- Nếu với k=2 ta có các mối quan hệ Ai1,Ai2 Aj1

Ai1,Ai2 Aj2 ... Ai1,Ai2 Ajp

khăn vì phải dự báo cho nhiều tập mờ Ajkk=1,2,..p. Trong trƣờng hợp này, tiếp tục nâng bậc k lên đến bạc m mà có môi quan hệ mờ duy nhất nhƣ trƣờng hợp trên. Trong trƣờng hợp này ta có: Aim,Ai(m-1),...Ai1 Aj1

Khi đó ta sẽ xử lý nhƣ trƣờng hợp trên, có nghĩa là tìm đoạn ui mà trong đó giá trị hàm thuộc của Aj1 đạt maximum và điểm giữa của uimithì dự báo của chuỗi thời gian tại thời điểm i là mi.

- Nếu vế phải của mối quan hệ mờ là trống nhƣ trƣờng hợp sau: Ai1,Ai2,...Aip

 và đoạn uim, ui(m-1), ... ui1 tƣơng ứng với các giá trị hàm thuộc của các tập mờ trên đạt giá trị maximal và mim, mi(m-1), ... mi1 là các giá trị trung điểm của các khoảng. Khi đó giá trị dự báo của chuỗi thời gian tại thời điểm t đƣợc tính theo công thức sau:

3.2.2.2. Đề xuất bậc cao cho chuỗi thời gian mờ Heuristic [2]

Đề xuất thuật toán mới cho chuỗi thời gian mờ Heuristic đƣợc đƣa ra trong [4] bao gồm các bƣớc sau:

1. Xác định tập nền. Tập nền U đƣợc xác định nhƣ sau: lấy giá trị lớn nhất fmax và nhỏ nhất fmin của chuỗi thời gian và U =[fmin-f1, fmax+f2] trong đó f1,f2 là những giá trị dƣơng nào đó.

2. Chia đoạn U thành m khoảng con bằng nhau u1, u2,...um.

3. Tính toán phân bố các giá trị chuỗi thời gian của từng khoảng và chia lại các khoảng sao cho giá trị chuỗi thời gian rơi vào từng khoảng là trung bình. 4. Xây dựng các tập mờ Ai tƣơng ứng với các khoảng con nhƣ trong trong bƣớc 2

và sử dụng các hàm thuộc tam giác cho mỗi khoảng con của phép chia và mờ hoá các giá trị chuỗi thời gian.

5. Xây dựng mối quan hệ mờ và xác định nhóm các quan hệ mờ.

6. Dự báo và giải mờ dựa vào các hàm heuristic theo nhóm quan hệ mờ bậc cao

theo các luật dựa vào hàm heuristic h theo Định nghĩa 7.

Để dự báo giá trị chuỗi thời gian, ta cần xác định hiệu số bậc nhất và bậc 2 cho chuỗi thời gian. Giả sử các giá trị của chuỗi thời gian tại các thời điểm tƣơng ứng t, t- 1, t-2 là f(t), f(t-1), f(t-2). Khi đó các hiệu số bậc nhât và bậc hai đƣợc xác định:

∆i = f(t) – f(t-1); ∆i2 = (f(t) – f(t-1)) – (f(t-1) – f(t-2)) k m k m mik i k i           ... 2 1 .... 2 1 ( 1) 1

Tƣơng tự khí xét đến một hàm số, nếu hiệu số bậc nhất là dƣơng thì hàm đó là hàm tăng, còn hiệu bậc nhất âm thì hàm đó là hàm giảm. Đƣa cả khái niệm hiệu số bậc hai vào và xét tính chất âm dƣơng của nó để thêm thông tin về hàm (giảm) tăng từ từ và tăng (giảm) nhanh phụ thuộc vào hiệu số bậc 2 âm hay dƣơng.

Ngoài ra còn xét đến điểm lấy giá trị trong khoảng phân chia. Phụ thuộc vào độ tăng giảm của chuỗi thời gian, các điểm đƣợc lấy để tính toán trong khoảng không phải là điểm giữa khoảng nữa mà trong thuật toán dƣới đây, ta sẽ lấy các điểm 0.25 (điểm dƣới), 0.5 (điểm giữa) và 0.75 (điểm trên) của khoảng.

3.2.2.3. Thuật toán bậc cao mới [4]

Thuật toán mới cải tiến từ hai thuật toán đã đƣợc sử dụng ở trên. Trƣớc hết đó là thuật toán bậc cao của Chen và sau đó sử dụng về cơ bản các bƣớc trong thuật toán heurestic (sử dụng hàm heuristic h) để tính toán dự báo. (adsbygoogle = window.adsbygoogle || []).push({});

Để sử dụng thuật toán heuristic cho mô hình chuỗi thời gian mờ bậc cao, phải xử lý thêm nhóm quan hệ mờ. Nhƣ vậy ta phải dựa vào khái niệm trong Định nghĩa 5 để xây dựng nhóm quan hệ mờ bậc cao. Do đó áp dụng khái niệm này, thuật toán cải biên đƣợc đƣa ra nhƣ sau:

1. Xác định tập nền. Tập nền U đƣợc xác định nhƣ sau: lấy giá trị lớn nhất fmax và nhỏ nhất fmin của chuỗi thời gian và U =[fmin-f1, fmax+f2] trong đó f1,f2 là những giá trị dƣơng nào đó. Chia đoạn U thành m khoảng con bằng nhau u1, u2,...um. 2. Tính toán phân bố các giá trị chuỗi thời gian của từng khoảng và chia lại các

khoảng sao cho giá trị chuỗi thời gian rơi vào từng khoảng là trung bình. 3. Xây dựng các tập mờ Ai tƣơng ứng với các khoảng con nhƣ trong trong bƣớc 2

và sử dụng các hàm thuộc tam giác cho mỗi khoảng con của phép chia và mờ hoá các giá trị chuỗi thời gian.

4. Xây dựng mối quan hệ mờ và xác định nhóm các quan hệ mờ. Từ đó xây dựng

nhóm quan hệ mờ bậc cao theo Định nghĩa 6. 5. Giải mờ và dự báo theo thuật toán heuristic bậc cao.

Dự báo và giải mờ dựa vào các hàm heuristic theo nhóm quan hệ mờ bậc cao theo các luật dựa vào hàm heuristic h theo Định nghĩa 7.

Để đƣa ra luật giải mờ heristic, ta cần thêm thông tin thông qua việc xác định hiệu số bậc nhất và bậc 2 cho chuỗi thời gian. Giả sử các giá trị của chuỗi thời gian tại các thời điểm tƣơng ứng t, t-1, t-2 là f(t), f(t-1), f(t-2). Khi đó các hiệu số bậc nhất và bậc 2 đƣợc xác định: )) 2 ( ) 1 ( ( )) 1 ( ) ( ( ); 1 ( ) (    2        i f t f t i f t f t f t f t

Quy tắc dự báo như sau:

Luật 1: Nếu nhóm quan hệ mờ của [Ai1,Ai2 ] là rỗng và giả sử mi1mi2 là điểm giữa của khoảng ui1 ui2 khi đó giá trị dự báo của F(t) là giá trị trung bình của hai điểm giữa trên, tức là:

forecast = (mi1 + mi2 )/2

Luật 2: Nếu nhóm quan hệ mờ bậc cao có dạng [Ai1,Ai2 ] Ak thì giá trị dự báo là điểm dƣới, điểm giữa hoặc điểm trên của khoảng uk (giả sử điểm đó là mk) tùy thuộc theo tính chất của hiệu số bậc 1 và hiệu số bậc 2 tại thời điểm t, khi đó:

forecast = mk

Luật3: Nếu mối quan hệ mờ bậc cao có dạng [Ai1,Ai2 ] Ai1,Ai2... Aip, thì giá trị dự báo sẽ là:

forecast = (mi1 + mi2+...+mip )/p

với mi1, mi2,...mip là điểm dƣới, điểm giữa hoặc điểm trên của các khoảng tƣơng ứng tùy thuộc theo tính chất của hiệu số bậc 1 và hiệu số bậc 2 tại thời điểm t.

Quy luật lấy giá trị tại các khoảng tƣơng ứng nhƣ sau:

Tính chất chuỗi Hiệu bậc nhất Hiệu bậc 2 Các điểm lấy giá trị

Giảm từ từ ∆ < 0 ∆2 > 0 0.75,..., 0.75, 0.5, 0.25 Giảm nhanh ∆ < 0 ∆2 < 0 0.25, ..., 0.25, 0.5, 0.75 tăng nhanh ∆ > 0 ∆2 > 0 0.25, ..., 0.25, 0.5, 0.75 tăng từ từ ∆ > 0 ∆2 < 0 0.75,..., 0.75, 0.5, 0.25

3.2.2.4. Thuật toán bậc cao của Singh [14]

Bước 1: Xác định tập nền. Tập nền U đƣợc xác định nhƣ sau: lấy giá trị lớn nhất fmax và nhỏ nhất fmin của chuỗi thời gian và U =[fmin-f1, fmax+f2] trong đó f1,f2 là những giá trị dƣơng nào đó.

Bước 2: Chia đoạn U thành m khoảng con bằng nhau u1, u2,...um.

Bước 3: Xây dựng các tập mờ Ai tƣơng ứng với các khoảng con nhƣ trong trong bƣớc 2 và sử dụng các hàm thuộc tam giác cho mỗi khoảng con của phép chia.

Bước 4: Mờ hoá các giá trị của chuỗi thời gian và thiết lập mối quan hệ mờ theo quy tắc: nếu Ailà giá trị mờ hoá tại thời điểm tAj là giá trị mờ hoá tại thời điểm tiếp theo t+1 thì ta có mối quan hệ mờ Ai Aj nhƣ tại Định nghĩa 2. Ai là trạng thái hiện thời còn A là trạng thái tiếp theo.

Thiết lập mối quan hệ mờ của các bậc khác nhau như đưa ra dưới đây:

(i) Nếu cho thời điểm t - 2, t - 1 và t, giá trị chuỗi thời gian đƣợc mờ hóa tƣơng ứng là

Ai1, Ai và Aj, khi đó có mối quan hệ mờ bậc 2 nhƣ sau: Ai1, Ai → Aj.

(ii) Nếu cho thời điểm t - 3, t - 2, t - 1 và t, giá trị chuỗi thời gian đƣợc mờ hóa tƣơng ứng là Ai2, Ai1, Ai và Aj, khi đó có mối quan hệ mờ bậc 3 nhƣ sau: Ai2, Ai1, Ai → Aj. (iii) Tƣơng tự nhƣ vậy nếu cho thời điểm t - 4, t - 3, t - 2, t - 1 và t, giá trị chuỗi thời gian đƣợc mờ hóa tƣơng ứng là Ai3, Ai2, Ai1, Ai và Aj, khi đó có mối quan hệ mờ bậc 3 nhƣ sau: Ai3, Ai2, Ai1, Ai → Aj.

Theo cách tƣơng tự chúng ta có thể xác định đƣợc các cao hơn nhiều nhƣ: bậc năm, bậc sáu, bậc bảy, bậc tám và các mối quan hệ mờ tƣơng ứng.

Tính toán các tham số dn, n = 2, 3, 4,. . . của các bậc khác nhau: (adsbygoogle = window.adsbygoogle || []).push({});

(i) khảo sát một toán tử khác d2 yi = |yi | và đƣợc định nghĩa là d2 Ei = |Ei - Ei -1| d3 Ei = |d2Ei - d2Ei -1| d4 Ei = |d3Ei – d3Ei -1| d5 Ei = |d4Ei – d4Ei -1| d6 Ei = |d5Ei – d5Ei -1| d7 Ei = |d6Ei – d6Ei -1| … dn Ei= |dn-1Ei – dn-1Ei -1| Do đó, d3

Ei= ||Ei - Ei -1| - |Ei -1 - Ei -2 || and d4Ei= |||Ei - Ei -1| -| Ei -1 - Ei -2 || - ||Ei -1 - Ei -2| - |Ei -2 - Ei -3 ||| and d5Ei = ||||Ei– Ei–1| – |Ei–1– Ei–2||– ||Ei–1– Ei–2 | – |Ei–2– Ei–3 ||| - |||Ei–1– Ei–2 | – |Ei–2– Ei–3 || – ||Ei–2– Ei–3| – |Ei–3– Ei–4 |||| và cứ tiếp tục nhƣ vậy.

(ii) Số bƣớc w của dự báo mờ = int (số lƣợng khoảng / 2) thu đƣợc là: int (7/2) = 3.

Tính toán và dự báo:

Một số ký hiệu đƣợc sử dụng đƣợc định nghĩa nhƣ sau:

[*Aj ] là khoảng tƣơng ứng Uj mà hàm thuộc trong Aj đạt giá trị Supremum

L[*Aj ] là giới hạn dƣới của khoảng Uj

U[*Aj ] là giới hạn trên của khoảng Uj

l[*Aj ] là độ dài khoảng Uj trong đó hàm thuộc của Aj đạt Supremum

M[*Aj ] là giá trị trung bình của khoảng Uj trong đó hàm thuộc của Aj đạt Supremum

Đối với một mối quan hệ mờ Ai → Aj:

Aj là giá trị mờ tại thời điểm t

Ei là giá trị của chuỗi thời gian tại thời điểm t-1 Ei-1 là giá trị của chuỗi thời gian tại thời điểm t-2 Ei-2 là giá trị của chuỗi thời gian tại thời điểm t-3 Ei-3 là giá trị của chuỗi thời gian tại thời điểm t-4 Ei-4 là giá trị của chuỗi thời gian tại thời điểm t-5 Fj là giá trị dự báo của chuỗi thời gian tại thời điểm t

Ở đây, sử dụng mô hình bậc 2 với các giá trị của chuỗi thời gian tại thời điểm t - 2, t - 1 cho khung quy tắc để thực hiện về mối quan hệ logic mờ, Ai → Aj, với Ai, trạng thái hiện hành, là mờ hóa số liệu tại thời điểm t - 1 và Aj, trạng thái kế tiếp, là mờ hóa số liệu tại thời điểm t.

Thuật toán tính toán:

Đối với dự báo chuỗi thời gian mờ của mô hình bậc hai, có thể dự báo từ năm thứ ba của dữ liệu chuỗi thời gian và do đó cần phải đặt n = 2 và t = 3.

Đặt n = 2, t = 3

For t = 3 đến T (kết thúc dữ liệu chuỗi thời gian)

Thu đƣợc mờ quan hệ từ thời điểm t – 1(Ai) đến t (Aj): Ai → Aj

R = 0 và S = 0 Tính toán dnEi= |dn-1Ei- dn-1Ei–1| Xi= Ei + dnEi/2 XXi= Ei – dnEi/2 Yi= Ei + dnEi YYi= Ei - dnEi Pi = Ei + dnEi/4 PPi = Ei - dnEi/4 Qi= Ei + 2*dnEi QQi = Ei - 2*dnEi Gi= Ei + dnEi/6 GGi = Ei - dnEi/6 Hi = Ei + 3*dnEi HHi = Ei - 3*dnEi If Xi ≥ L [* Aj] and Xi ≤ U [*Aj] Then R = R + Xi and S = S + 1 If XXi ≥ L [* Aj] and XXi ≤ U [* Aj]

Then R = R + XXi and S = S + 1 If Yi ≥ L [* Aj] and Yi ≤ U [*Aj]

If YYi ≥ L [* Aj] and YYi ≤ U [* Aj] Then R = R + YYi and S = S + 1 If Pi ≥ L [* Aj] and Pi ≤ U [*Aj] Then R = R + Pi and S = S + 1 If PPi ≥ L [* Aj] and PPi ≤ U [* Aj] Then R = R + PPi and S = S + 1 If Qi ≥ L [*Aj] and Qi ≤ U [* Aj] Then R = R + Qi and S = S + 1 If QQi ≥ L [* Aj] and QQi ≤ U [* Aj] Then R = R + QQi and S = S + 1 If Gi ≥ L [*Aj] and Gi ≤ U [* Aj] Then R = R + Gi and S = S + 1 If GGi ≥ L [*Aj] and GGi ≤ U [*Aj]

Then R = R + GGi and S = S + 1 If Hi ≥ L [*Aj] and Hi ≤ U [* Aj] Then R = R + Hi and S = S + 1 If HHi ≥ L [* Aj] and HHi ≤ U [* Aj] Then R = R + HHi and S = S + 1 Fj=(R + M(* Aj))=(S + 1) Next t

Tƣơng tự nhƣ vậy, thiết lập n = 3 và t = 4, ta có thể nhận đƣợc dự đoán bởi mô hình bậc ba và n = 4, t = 5 để có đƣợc dự đoán bởi mô hình bậc 4 và cứ tiếp tục nhƣ vậy. Nhƣ vậy giá trị dự báo có thể thu đƣợc bằng các mô hình bậc cao khác nhau.

Đề xuất cải biên cho thuật toán của Singh

Chúng tôi đề xuất một cải biên đơn giản cho thuật toán bậc cao của Singh ở bƣớc 2 của thuật toán. Chúng tôi thực hiện một thay đổi nhỏ trong bƣớc 2 của thuật toán trên để phân bố các điểm rơi vào từng khoảng đƣợc đều hơn. Các bƣớc còn lại đƣợc giữ nguyên nhƣ thuật toán của Singh. Cụ thể: sau khi chia U thành m đoạn con bằng nhau, có một vấn đề đặt ra là số liệu chuỗi thời gian sẽ phân bố không đều trong các khoảng đã chia. Có thể có những khoảng không có giá trị chuỗi thời gian đang xét rơi vào nhƣng cũng có thể có những khoảng có rất nhiều giá trị sẽ quy tập tại đó. Nhƣ vậy dự báo sẽ có nhiều sai số do sự phân bố không đều này. Vì vậy sẽ nảy sinh ra vấn đề cần chia lại khoảng sao cho phân bố của chuỗi thời gian rơi vào các khoảng đã chia sẽ đƣợc đều hơn. Vấn đề này đã đƣợc quan tâm trong [6]. Nội dung chủ yếu của lập luận là tính toán phân bố của giá trị chuỗi thời gian trong từng khoảng con.Giả sử số lƣợng các giá trị chuỗi thời gian là p điểm. Số lƣợng khoảng cần chia là m. Khi đó trung bình mỗi khoảng chứa n=p/m giá trị chuỗi thời gian. Nếu khoảng nào có số lƣợng giá trị chuỗi thời gian rơi vào nhỏ hơn hoặc bằng n thì không chia nhỏ ra, còn số

lƣợng điểm rơi vào khoảng này lớn hơn n bao nhiêu lần thì sẽ chia nhỏ khoảng đó ra làm từng đó lần. Kết quả, sau bƣớc này việc chia khoảng sẽ không thành các khoảng đều nhau nữa nhƣng giá trị chuỗi thời gian lại đƣợc phân bố đồng đều hơn trong từng khoảng con. Các bƣớc cụ thể của phƣơng pháp này đƣợc trình bầy cụ thể trong phần ứng dụng.

Một phần của tài liệu ứng dụng mô hình chuỗi thời gian mờ bậc cao trong dự báo (Trang 38 - 45)