1. Trang chủ
  2. » Công Nghệ Thông Tin

Ứng dụng phân cụm mờ trong bài toán dự báo ảnh mây vệ tinhb

84 214 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 84
Dung lượng 3,19 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Dựa trên lí thuyết về tập mờ, các thuật toán phân cụm mờ đã được đề xuất và được ứng dụng thành công trong rất nhiều lĩnh vực, đặc biệt là dự báo.. Hiện nay công tác dự báo thời tiết đã

Trang 1

LỜI CẢM ƠN

Để thực hiện bài báo cáo này, em đã nhận được sự giúp đỡ rất nhiều từ phía nhà trường và Trung tâm tính toán hiệu năng cao - trường Đại học Khoa học tự nhiên Hà Nội Em xin gửi lời cảm ơn chân thành đến:

Khoa Công nghệ Thông tin đã trang bị cho chúng em những kiến thức căn bản

Em xin cảm ơn Samsung Lab - trường Đại Học Công Nghệ Thông Tin và Truyền Thông đã cho em có nơi nghiên cứu đề tài tốt nhất

Em xin gửi lời cảm ơn đến anh Phạm Huy Thông – cán bộ Trung tâm tính

toán hiệu năng cao - trường Đại học Khoa học tự nhiên Hà Nội đã nhiệt tình chỉ bảo, giúp đỡ em trong quá trình làm đồ án

Em xin chân thành cảm ơn giáo viên hướng dẫn – Th.S Trần Mạnh Tuấn và

TS Lê Hoàng Sơn đã tạo điều kiện giúp đỡ em trong quá trình thực hiện đề tài

Mặc dù đã cố gắng nhưng do gặp nhiều khó khăn và thời gian và khả năng còn hạn chế nên không thể tránh khỏi thiếu sót Em kính mong nhận được sự góp ý

từ các thầy cô để bài báo cáo của em được hoàn thiện và đầy đủ hơn

Thái Nguyên, tháng 5 năm 2016

Sinh viên

Trần Thu Phượng

Trang 2

MỤC LỤC

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1

1.1 Kiến thưc cơ bản về tập mờ và phân cụm mờ 1

1.1.1 Tập mờ 1

1.1.2 Phân cụm mờ 3

1.2 Giới thiệu ngôn ngữ lập trình Java 10

1.2.1 Lịch sử phát triển 10

1.2.2 Giới thiệu ngôn ngữ lập trình Java10

1.2.3 Khai báo biến trong Java 12

1.2.4 Mảng trong Java 16

1.2.5 Điều khiển vòng lặp trong Java 18

1.3 Thiết kế giao diện 19

CHƯƠNG 2: XÂY DỰNG BÀI TOÁN DỰ BÁO ẢNH MÂY VỆ TINH 262.1 Phương pháp dự báo kết hợp phân cụm với luật mờ 26

2.2 Quy trình suy diễn mờ 27

2.3 Mô hình và cơ chế suy diễn 29

CHƯƠNG 3: CÀI ĐẶT THUẬT TOÁN VÀ ỨNG DỤNG 32

3.1 Mô tả dữ liệu 32

3.2 Các độ đo 34

3.2.1 Mean Absolute Error (MAE) 34

3.2.2 Mean Squared Error (MSE)34

3.2.3 Root Mean Squared Error(RMSE) 34

3.3 Mô tả Demo 34

3.4 Kết quả thực nghiệm 37

3.5 Cài đặt thuật toán và ứng dụng 37

3.5.1 Đầu vào của bài toán 38

3.5.2 Chương trình thuật toán FC-PFS 39

3.5.3 Các bước chính xây dựng chương trình dự báo ảnh mây vệ tinh: 44KẾT LUẬN 63

TÀI LIỆU THAM KHẢO 64

Trang 3

DANH MỤC HÌNH ẢNH, BẢNG

Hình 1: Luật mờ tam giác 28

Hình 2: Quy trình bài toán dự báo 29

Bảng 2: Kết quả thực nghiệm với ba bộ dữ liệu37

Bảng 3: Kết quả thực nghiệm với tham số C thay đổi 37

Trang 4

LỜI NÓI ĐẦU

Trong những năm gần đây, do sự phát triển vượt bậc của nền kinh tế, kéo theo các hệ thống dữ liệu phục vụ cho các lĩnh vực kinh tế-xã hội phát triển bùng

nổ, lượng dữ liệu khổng lồ được tạo ra ngày càng lớn Cũng từ đó, các yêu cầu về thông tin, khám phá tri thức mới trong lĩnh vực này ngày càng đòi hỏi cao hơn Trước nhu cầu đó, hàng loạt các lĩnh vực nghiên cứu về tổ chức các kho dữ liệu và thông tin, các hệ trợ giúp quyết định, các thuật toán nhận dạng, và đặc biệt là Data Mining ra đời

Khai phá dữ liệu (Data Mining) là một lĩnh vực mới nhằm tự động khai thác các thông tin có giá trị tiềm ẩn bên trong tập dữ liệu được lưu trữ trong các cơ sở

dữ liệu và kho dữ liệu Hiện nay, DataMining đã ứng dụng ngày càng rộng rãi trong các lĩnh vực như thương mại, tài chính, điều trị y học, viễn thông v.v

Một trong những hướng nghiên cứu chính của Data Mining là phân cụm dữ liệu Phân cụm dữ liệu là một kĩ thuật nhằm tìm kiếm, phát hiện các cụm, các mẫu

dữ liệu tự nhiên, tiềm ẩn, quan tâm trong tập dữ liệu lớn, từ đó cung cấp thông tin, tri thức hữu ích cho việc ra quyết định Như vậy, phân cụm dữ liệu là quá trình phân chia một tập ban đầu thành các cụm dữ liệu sao cho các phần tử trong một cụm tương tự nhau, các phần tử trong các cụm khác nhau không tương tự nhau

Để tăng độ chính xác trong phân cụm, các thuật toán phân cụm dữ liệu luôn được cải tiến, trong đó phải kể đến thuật toán phân cụm mờ Dựa trên lí thuyết về tập mờ, các thuật toán phân cụm mờ đã được đề xuất và được ứng dụng thành công trong rất nhiều lĩnh vực, đặc biệt là dự báo

Xuất phát từ nhu cầu thực tiễn của cuộc sống, dự báo thời tiết từ lâu đã luôn

là vấn đề được quan tâm, nghiên cứu Từ xa xưa loài người đã dựa vào quan sát các hiện tượng tự nhiên trên bầu trời để rút ra quy luật thời tiết, ví dụ như: ráng vàng thì nắng, ráng trắng thì mưa hoặc chuồn chuồn bay thấp thì mưa, bay cao thì nắng, bay vừa thì râm, và hình dạng của các đám mây.v.v để dự báo thời tiết Tuy nhiên phương pháp này có độ chính xác không cao, đặc biệt là đối với diễn biến

Trang 5

thời tiết phức tạp như ngày nay

Với khả năng ứng dụng rộng rãi, cùng sự phát triển của khoa học kĩ thuật, lí thuyết mờ ngày càng mở rộng và đóng góp to lớn trong lĩnh vực dự báo Hiện nay công tác dự báo thời tiết đã được thực hiện bằng cách thu thập số liệu về trạng thái hiện tại của bầu khí quyển và áp dụng logic mờ, các mô hình toán học, những hiểu biết khoa học về các quá trình của khí quyển để tiên đoán sự tiến triển của các hiện tượng trong khí quyển, góp phần quan trọng trong việc dự báo sớm các thảm họa thiên nhiên

Phần chính của đồ án đề cập tới thuật toán phân cụm mờ cải tiến dựa trên tập

mờ viễn cảnh, hay còn gọi là thuật toán phân cụm mờ viễn cảnh Từ đó đưa ra ứng dụng của thuật toán phân cụm mờ trong bài toán dự báo thời tiết, cụ thể là phương pháp dự báo thời tiết kết hợp giữa thuật toán phân cụm mờ và hệ luật mờ Với những cải tiến trong thuật toán, phương pháp mang lại kết quả dự báo khá chính xác

Tên đề tài: Ứng dụng phân cụm mờ trong bài toán dự báo ảnh mây vệ tinh

Bố cục bài báo cáo gồm 3 phần:

Chương 1: Cơ sở lý thuyết

Chương 2: Xây dựng bài toán dự báo ảnh mây vệ tinh

Chương 3: Cài đặt thuật toán và ứng dụng

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

 Kiến thưc cơ bản về tập mờ và phân cụm mờ

Trang 6

không thể giải quyết được những bài toán phức tạp này sinh trong thực tế Ví dụ: tập hợp những người cao là từ 1m75 trở lên được chọn vào đội bóng rổ Vậy người cao 1m74 sẽ không thuộc tập hợp những người cao và bị loại liệu đã hợp lý.

Do vậy, một cách tiếp cận mới đã và đang được phát triển nhằm giải quyết những vấn đề trên Đó là lý thuyết tập mờ (Fuzzy Set) do giáo sư Lotfi A Zadeh của trường đại học California – Mỹ sáng lập, bắt đầu với bài báo “Fuzzy Sets” năm

1965 Công trình này nhanh chóng được các nhà nghiên cứu đón nhận Ý tưởng của Zadeh về lý thuyết tập mờ là biểu diễn các thông tin trừu tượng, không chắc chắn như chiều cao (cao – thấp), độ tuổi (trẻ – già) v.v bằng khái niệm toán học gọi là tập mờ Phần tiếp theo sẽ cho thấy sự khác biệt giữa tập rõ và tập mờ

 Khái niệm tập rõ

Định nghĩa 1.1: Cho tập nền X với x là phần tử của tập X A là một tập rõ

trên tập X, với x là phần tử thuộc tập hợp A, ta có x A hoặc x A và (x) được gọi

là hàm thuộc hay hàm đặc trưng của tập hợp A [2]

Định nghĩa 1.2: Cho tập nền X với x là phần tử của tập X Một tập mờ F trên

tập X được định nghĩa bởi một hàm thành viên hay còn gọi là hàm thuộc F(x), đo

“mức độ” mà phần tử x thuộc về tập F thỏa mãn điều kiện với xX, 0 F(x)1

(1.2)

Nếu F(x) = 1 thì x F hoàn toàn

Nếu F(x) = 0 thì x F hoàn toàn

Trang 7

Nếu hàm thuộc F(x) chỉ nhận giá trị 1 hoặc 0, tức là các phần tử trong tập hợp

F thuộc hoặc không thuộc F một cách rõ ràng thì tập mờ trở thành tập rõ Như vậy tập rõ chính là một trường hợp đặc biệt trong tập mờ

Ví dụ: “Một vài sinh viên”, “Anh A khá là cao”, “Quả táo hơi bé” v.v

 Tập mờ trực cảm.

Tập mờ trực cảm (Intuitionistic fuzzy sets) được đề xuất bởi Krassimir Atanassov vào năm 1983 là một sự mở rộng của tập mờ Zadeh năm 1965 Nó đặc

biệt hữu dụng khi làm việc với các đối tượng ngữ nghĩa tự nhiên, trong đó việc đưa

ra độ thuộc không thôi chưa đủ Ví dụ khi đưa ra quyết định một vấn đề, trong y học, bầu cử, kinh doanh.v.v, đặc biệt là khi tập hợp ý kiến nhiều chuyên gia, bên cạnh việc ủng hộ còn có sự phản đối và một tỷ lệ do dự nhất định (bỏ phiếu trắng hoặc phiếu không hợp lệ)

Định nghĩa 1.3: Xét X là một tập không rỗng, một tập mờ trực cảm A trên

không gian nền X cho bởi:

(1.3)

trong đó , thỏa mãn điều kiện:

(1.4)với µA(x), νA(x) lần lượt là độ thuộc và độ không thuộc của x vào tập A,

πA(x) = 1 µA(x) νA(x) là độ do dự (không rõ x thuộc hay không thuộc vào A) Ta thấy

(1.5)

Kí hiệu IFS(X) là tập các tập mờ trực cảm trên không gian nền X Như vậy, theo định nghĩa trên thì tập mờ thường A′ là một trường hợp riêng của tập mờ trực cảm:

(1.6)

với độ do dự là 0:

Trang 8

Tập mờ trực cảm tổng quát hơn tập mờ Nó cho phép chúng ta có thể biểu diễn những thông tin, trí thức không nhất quán, ứng dụng đa dạng trong những bài toán thực tiễn Đặc biệt trong trường hợp tổng hợp ý kiến của con người về một vấn đề, trong đó có 3 câu trả lời cơ bản: (1) Có, tôi đồng ý; (2) Không, tôi phản đối; (3) Tôi không biết, tôi không chắc chắn

rõ x có thuộc tập A hay không), là phương án phủ nhận

cả 3 trường hợp trên

(1.10)Tập mờ viễn cảnh cho phép chúng ta có thể biểu diễn những thông tin, trí thức không nhất quán, ứng dụng đa dạng trong những bài toán thực tiễn Đặc biệt trong trường hợp tổng hợp ý kiến của con người về một vấn đề, trong đó có 4 câu trả lời cơ bản: (1) Có, tôi đồng ý; (2) Không, tôi phản đối; (3) Tôi không biết, tôi không chắc chắn; (4) Không đưa ra câu trả lời (không quan tâm vấn đề) Bầu cử là một ví dụ điển hình trong trường hợp này Người bỏ phiếu được phân ra làm 4 dạng: (1) Ủng hộ; (2) Phản đối; (3) Bỏ phiếu trắng hoặc bỏ phiếu không hợp lệ; (4) Không đi bỏ phiếu

1.1.2 Phân cụm mờ

Phân cụm là quá trình nhóm các dữ liệu trong cơ sở dữ liệu thành các cụm

Trang 9

sao cho những điểm dữ liệu trong cùng một cụm có độ tương đồng lớn và những điểm không cùng một cụm có sự tương đồng là rất nhỏ.

Phân cụm đặc biệt hiệu quả khi không biết hoặc biết thuộc tính của cụm mà chưa biết hoặc biết rất ít về các thông tin đó

Trong cuộc sống chúng ta đã gặp rất nhiều ứng dụng của bài toán phân cụm Tuy nhiên, một đối tượng có thể thuộc về nhiều cụm khác nhau, do đó ranh giới giữa các cụm thường không rõ, do vậy nếu chỉ áp dụng phân cụm thì nhiều bài toán sẽ không được giải quyết hiệu quả Do đó, ta cần áp dụng phương pháp phân cụm mờ vào việc phân cụm dữ liệu Chẳng hạn, ta có phép phân loại sau: Những người đi xe máy xịn thì thuộc nhóm người giàu, những người đi xe máy thường thuộc nhóm bình dân Vậy người nghèo mà đi xe máy xịn thì ta xếp người đó vào nhóm nào? Vì vậy chúng ta đưa vào khái niệm bài toán phân cụm mờ

Trong các phương pháp phân cụm cứng như K-Means phân cụm dữ liệu chỉ thuộc về một cụm dữ liệu, phương pháp này chỉ phù hợp với việc khám phá ra các cụm có mật độ cao và rời nhau, với đường biên giữa các cụm được xác định tốt Tuy nhiên, trong thực tế, đường biên giữa các cụm có thể mờ, các cụm có thể chồng lên nhau, nghĩa là một số các đối tượng dữ liệu thuộc về nhiều các cụm khác nhau, do đó mô hình này không mô tả được dữ liệu thực Vì vậy người ra đã áp dụng lý thuyết về tập mờ trong phân cụm dữ liệu để giải quyết cho trường hợp này Cách thức kết hợp này gọi là phân cụm mờ

Phân cụm mờ là phương pháp phân cụm dữ liệu mà cho phép mỗi điểm dữ liệu thuộc về hai hoặc nhiều cụm Ruspini (1969) giới thiệu khái niệm phân hoạch

mờ để mô tả cấu trúc cụm của tập dữ liệu và đề xuất một thuật toán để tính toán tối

ưu phân hoạch mờ Dum (1973) mở rộng phương pháp phân cụm và đã phát triển thuật toán phân cụm mờ Ý tưởng của thuật toán là xây dựng một phương pháp phân cụm mờ dựa trên tối thiểu hóa hàm mục tiêu Bezdek (1981) cải tiến và tổng quát hóa hàm mục tiêu mờ bằng cách đưa ra trọng số mũ để xây dựng thuật toán phân cụm mờ và được chứng minh độ hội tụ của các thuật toán là cực tiểu cục bộ

 Xây dựng cơ sở luật:

Để xây dựng luật, ta có một số phương pháp cơ bản Thông thường, cách đơn giản nhất là sử dụng phương pháp phân cụm, với tâm cụm nằm giữa cụm đó, giá trị của thuộc tính gần tâm cụm nào thì sẽ thuộc cụm đó Phương pháp này tỏ ra hiệu quả đối với những bộ dữ liệu có giá trị được rải đều trong giới hạn min-max của mỗi thuộc tính Với bộ dữ liệu không được trải đều, phương pháp phân cụm

Trang 10

FCM tỏ ra hiệu quả hơn

1.1.2.1 Thuật toán phân cụm mờ C-means.

Thuật toán Cmeans mờ hay còn gọi tắt là thuật toán FCM (Fuzzy C means

-FCM) [2] được xây dựng dựa trên lí thuyết về tập mờ thường khi quan hệ thuộc của một phần tử đối với một tập chỉ có hai giá trị là thuộc và không thuộc

Thuật toán này chia một tập n vectơ đối tượng dữ liệu

thành C nhóm và tìm tâm cụm trong mỗi nhóm sử dụng hàm mục tiêu sau:

(1.11)

trong đó : là độ thuộc của phần tử thứ k vào cụm thứ j, m là tham số

mờ, Dữ liệu X chứa N phần tử , số cụm , tâm cụm Khoảng cách giữa các điểm đến trọng tâm thường được tính bằng khoảng

cách Euclid

(1.12)

Dựa vào phương pháp Langrange, từ hàm mục tiêu, Bezdek đã tính được độ

thuộc và tâm của các cụm như sau:

Trang 12

Mặc dù FCM là một thuật toán tốt, tuy nhiên còn phụ thuộc vào nhiều yếu tố như việc chọn số cụm, tham số mờ hay chọn độ đo khoảng cách, khởi tạo các tâm cụm ban đầu dẫn đến kết quả phân cụm không được như mong muốn FCM cũng khá nhạy cảm với nhiễu và các phần tử ngoại lai bên trong dữ liệu, nghĩa là các trung tâm cụm có thể nằm xa so với trung tâm thực của cụm Bên cạnh đó việc những thông tin thu thập được không đầy đủ, rõ ràng cũng là hạn chế của FCM, vì vậy các phương pháp cải tiến FCM trên những tập mờ nâng cao đã được đề xuất nhằm nâng cao chất lượng phân cụm Đó là phương pháp cải tiến FCM trên tâp mờ trực cảm IFS và trên tập mờ viễn cảnh PFS.

1.1.2.2 Thuật toán IFCM

Thuật toán IFCM là thuật toán phân cụm dựa trên tập mờ trực cảm IFS Ở đây độ thuộc của một điểm vào một cụm dữ liệu được cụ thể hơn với 3 giá trị: thuộc, không thuộc và độ do dự (không biết thuộc hay không)

Từ tập gồm N phần tử chúng ta chia chúng vào C cụm với hàm mục tiêu như sau:

(1.15)

trong đó:

là độ thuộc của phần tử thứ k vào cụm thứ j, m là tham số mờ, dữ liệu X

chứa N phần tử , số cụm , tâm cụm Khoảng cách giữa các điểm

đến trọng tâm thường được tính bằng khoảng cách Euclid

(1.16)

Chú ý rằng khi , hàm mục tiêu trở về hàm mục tiêu của FCM

Trang 13

Mặc dù độ thuộc của một điểm vào một cụm đã được cụ thể hơn, giúp cho việc phân cụm đa dạng, chính xác hơn Tuy nhiên những khó khăn trong IFCM gặp phải cũng giống như trong FCM, bên cạnh đó việc tính toán của IFCM cũng phức tạp hơn.

Để đơn giản, việc tính độ do dự được đề xuất bởi Zeshui Xu và Wu qua phương trình:

mục tiêu dưới đây:

(1.19)

Với dữ liệu X chứa N phần tử , số cụm , tâm cụm Khoảng cách giữa các điểm đến trọng tâm thường được tính bằng khoảng cách Euclid

, độ thuộc , độ không thuộc , độ phủ định , m là tham số mờ

thỏa mãn một số điều kiện:

(1.20)

Trang 14

(1.23)

Một điểm dữ liệu gồm 4 lựa chọn: thuộc, không thuộc, do dự, không thuộc cụm nào, FC-PFS có được nhiều thông tin hơn so với FCM và IFCM, vì thế việc phân cụm có thể hiệu quả và chính xác hơn Tuy nhiên tính toán phức tạp hơn

Với mục tiêu (1.19) và các điều kiện (1.20-1.23) sử dụng phương pháp

Langrange, ta thu được trọng tâm theo công thức (1.24):

Trang 16

Output của thuật toán bao gồm: Ma trận µ, , và các tâm cụm V.

Như vậy, trong chương này, chúng ta đã được biết đến tổng quan về cơ sở toán học của tập mờ, các tập mờ nâng cao, và các thuật toán phân cụm mờ dựa trên

lí thuyết về các tập mờ tương ứng

1.2 Giới thiệu ngôn ngữ lập trình Java

1.2.1 Lịch sử phát triển

Trang 17

Lịch sử phát triển: Java là một ngôn ngữ lập trình được Sun Microsystems giới thiệu vào tháng 6 năm 1995 Từ đó, nó đã trờ thành một công cụ lập trình của các lập trình viên chuyên nghiệp Java được xây dựng trên nền tảng của C và C++

Do vậy nó sử dụng các cú pháp của C và các đặc trưng hướng đối tượng của C++ Năm 1991, một nhóm các ký sư của Sun Microsystems có ý định thiết kế một ngôn ngữ lập trình để điều khiển các thiết bị điện tử như Tivi, máy giặt, lò nướng…Mặc

dù C và C++ có khả năng làm việc này nhưng trình biên dịch lại phụ thuộc vào từng loại CPU Do nhu cầu đòi hỏi của ngôn ngữ chạy nhanh, gọn , hiệu quả và độc lập với thiết bị tức là có thể chạy trên nhiều loại CPU khác nhau, dưới môi trường khác nhau Khi đó “Oak” được ra đời, năm 1995 “Oak” được đổi tên thành Java

1.2.2 Giới thiệu ngôn ngữ lập trình Java

Java là một ngôn ngữ lập trình dạng lập trình hướng đối tượng (OOP) Thập niên 90 chứng kiến sự phát triển như vũ bão của mạng internet, kèm theo đó là vô vàn các ứng dụng trên các môi trường, hệ điều hành (OS – Operating System) và các hệ xử lý CPU( Central Processing Unit) khác nhau Java có thể giải quyết hầu hết các công việc mà các ngôn ngữ khác có thể làm được Java là ngôn ngữ vừa thông dịch vừa biên dịch, đầu tiên mã nguồn được biên dịch bằng công cụ JAVAC

để chuyển thành dạng ByteCode Sau đó được thự thi trên từng loại máy cụ thể nhờ chương trình thông dịch Mục tiêu của các nhà thiết kế Java là cho phép người lập trình viết chương trình một lần nhưng có thể chạy trên bất cứ phần cứng cụ thể.Ngày nay, Java được sử dụng rộng rãi để viết chương trình chạy trên Internet

Nó là ngôn ngữ lập trình hướng đối tượng độc lập thiết bị, không phụ thuộc vào hệ điều hành Nó không chỉ dùng để viết các ứng dụng chạy đơ lẻ hay trong mạng mà còn để xây dựng các trình điều khiển thiết vị cho điện thoại di động, PDA,…

Các đặc trưng của Java:

 Hướng đối tượng

 Độc lập phần cứng và hệ điều hành

Trang 18

 Mạnh mẽ

 Bảo mật

 Phân tán

 Đa luồng

1.2.2.1 Hướng đối tượng

Java được thiêt kế xoay quanh mô hình hướng đối tượng Vì vậy trong Java, tiêu điểm là dữ liệu và các phương pháp thao tác trên dữ liệu đó Dữ liệu các phương pháp mô tả trạng thái và cách ứng xử của một đối tượng trong Java

1.2.2.2 Độc lập phần cứng và hệ điều hành

Đây là khả năng một chương trình được viết tại một máy nhưng có thể chạy được bất kì đâu Chúng được thể hiện ở mức mã nguồn và mức nhị phân Tính độc lập ở mức nhị phân, một chương trình đã biên dịch có thể chạy trên nhiều nền (phần cứng, hệ điều hành) khác mà không cần dịch lại mã nguồn Tuy vậy cần có phần mềm máy ảo Java (JVM) hoạt động như một trình thông dịch tại máy thực thi

Ở mức mã nguồn, người lập trình cần mô tả kiểu cho mỗi biến Kiểu dữ liệu trong Java nhất quán cho tất cả các hệ điều hành và phần cứng khác nhau Java có riêng một thư viện các lớp cơ sở Vì vậy, chương trình Java được viết trên một số máy có thể dịch và chạy trơn tru trên các loại máy khác nhau mà không cần viết lại Ở mức nhị phân, một chương trình đã biên dịch có thể chạy trên nền khác mà không cần dịch lại mã nguồn Tuy vậy , cần có phần mềm máy ảo Java như một trình thông dịch tại máy thực thi

1.2.2.3 Mạnh mẽ

Java yêu cầu chặt chẽ về kiểu dữ liệu và phải có mô tả rõ ràng khi viết chương trình Chúng sẽ kiểm tra lúc biên dịch và cả trong thời gian thông dịch vì vậy Java loại bỏ các kiểu dữ liệu dễ gây ra lỗi Java không sử dụng con trỏ và các phép toán con trỏ Java kiểm tra tất cả các truy nhập đến mảng, chuỗi khi thực thi

để đảm bảo rằng các truy nhập đó không ra ngoài giới hạn kích thước Java kiểm

Trang 19

tra sự chuyển đổi kiểu dữ liệu từ dạng này sang dạng khác lúc thực thi.+

Cơ chế bẫy lỗi của Java giúp đơn giản hóa quá trình xử lý lỗi và hồi phục sau lỗi

1.2.2.4 Bảo mật

Viruses là nguyên nhân gây ra sự lo lắng trong việc sử dụng máy tính Trước khi có Java, các lập trình viên phải quétviruscác tệp trước khi tải về hay thực hiện chúng Thông thường việc này cũng không loại trừ hoàn toàn virus Ngoài ra chương trình khi thực thi có khả năng tìm kiếm và đọc các thông tin nhạy cảm trên máy của người sử dụng mà người sử dụng không hề hay biết

Java cung cấp một môi trường quản lý thực thi chương trình Nó cho rằng không

có một đoạn mã nào là an toàn cả Và vì vậy Java không chỉ là ngôn ngữ lập trình thuần tuý mà còn cung cấp nhiều mức để kiểm soát tính an toàn khi thực thi chương trình

Java cung cấp một số lớp để kiểm tra bảo mật

Ở lớp đầu tiên, dữ liệu và các phương pháp được đóng gói bên trong lớp Chúng chỉ được truy xuất thông qua các giao diện mà lớp cung cấp Java không hỗ trợ con trỏ vì vậy không cho phép truy xuất bộ nhớ trực tiếp Nó cũng ngăn chặc không cho truy xuất thông tin bên ngoài của mảng bằng kỹ thuật tràn và cũng cung cấp kỹ thuật dọn rác trong bộ nhớ Các đặc trưng này tạo cho Java an toàn và có khả năng cơ động cao

Trong lớp thứ hai, trình biên dịch kiểm soát để đảm bảo mã an toàn

Lớp thứ ba được đảm bảo bởi trình thông dịch Chúng kiểm tra xem bytecode

có đảm bảo các quy tắc an toàn trước khi thực thi

Lớp thứ tư kiểm soát việc nạp các lớp trên bộ nhớ để giám sát việc vi phạm giới hạn truy xuất trước khi nạp vào hệ thống

1.2.2.5 Phân tán

Java có thể dùng để xây dựng các ứng dụng có thể làm việc trên nhiều phần cứng, hệ điều hành và giao diện đồ họa Java được thiết kế cho các ứng dụng chạy trên mạng Vì vậy, chúng được sử dụng rỗng tãi trên Internet, nơi sử dụng nhiều

Trang 20

nền tảng khác nhau.

1.2.2.6 Đa luồng

Chương trình Java sử dụng kỹ thuật đa tiến trình (Multithread) để thực thi các công việc đồng thời Chúng cũng cung cấp giải pháp động bộ giữa các tiến trình Đặc tính hỗ trợ đa tiến trình này cho phép xây dựng các ứng dụng trên mạng chạy uyển chuyển

1.2.3 Khai báo biến trong Java

1.2.3.1 Khai báo biến

• Không có khoảng trắng giữa tên

• Bắt đầu từ kí tự thứ hai, có thể dùng các kí tự (chữ), chữ số, dấu dollar, dấu gạch dưới

• Không trùng với các từ khoá

• Có phân biệt chữ hoa chữ thường

1.2.3.2 Kiểu dữ liệu

Trong Java, kiểu dữ liệu được chia thành hai loại:

• Các kiểu dữ liệu cơ bản

• Các kiểu dữ liệu đối tượng

Trang 21

Bảng 1: Các kiểu dữ liệu cơ bản trong Java

Java cung cấp các kiểu dữ liệu cơ bản như sau:

byte: Dùng để lưu dữ liệu kiểu số nguyên có kích thước một byte (8 bít)

Phạm vi biểu diễn giá trị từ -128 đến 127 Giá trị mặc định là 0

char: Dùng để lưu dữ liệu kiểu kí tự hoặc số nguyên không âm có kích thước

2 byte (16 bít)

Phạm vi biểu diễn giá trị từ 0 đến u\ffff Giá trị mặc định là 0

boolean: Dùng để lưu dữ liệu chỉ có hai trạng thái đúng hoặc sai (độ lớn chỉ

có 1 bít) Phạm vi biểu diễn giá trị là {“True”, “False”} Giá trị mặc định là False

short: Dùng để lưu dữ liệu có kiểu số nguyên, kích cỡ 2 byte (16 bít) Phạm

vi biểu diễn giá trị từ – 32768 đến 32767 Giá trị mặc định là 0

Trang 22

int: Dùng để lưu dữ liệu có kiểu số nguyên, kích cỡ 4 byte (32 bít) Phạm vi

biểu diễn giá trị từ -2,147,483,648 đến 2,147,483,647 Giá trị mặc định là 0

float: Dùng để lưu dữ liệu có kiểu số thực, kích cỡ 4 byte (32 bít) Giá trị mặc

Kiểu dữ liệu đối tượng

Trong Java, có 3 kiểu dữ liệu đối tượng:

Array: Một mảng của các dữ liệu cùng kiểu

class: Dữ liệu kiểu lớp đối tượng do người dùng định nghĩa Chứa tập các

thuộc tính và phương thức

interface: Dữ liệu kiểu lớp giao tiếp do người dùng định nghĩa Chứa các

phương thức của giao tiếp

Ép kiểu (Type casting)

Ví dụ, nhiều khi gặp tình huống cần cộng một biến có dạng integer với một biến có dạng float

Để xử lý tình huống này, Java sử dụng tính năng ép kiểu (type casting) của C/C++ Đoạn mã sau đây thực hiện phép cộng một giá trị dấu phẩy động (float) với một giá trị nguyên (integer)

float c = 35.8f;

int b = (int)c + 1;

Đầu tiên giá trị dấu phẩy động c được đổi thành giá trị nguyên 35 Sau đó nó được cộng với 1 và kết quả là giá trị 36 được lưu vào b

Trong Java có hai loại ép kiểu dữ liệu:

• Nới rộng (widening): quá trình làm tròn số từ kiểu dữ liệu có kích thước

nhỏ hơn sang kiểu có kích thước lớn hơn Kiểu biến đổi này không làm mất thông

Trang 23

tin Ví dụ chuyển từ int sang float Chuyển kiểu loại này có thế được thực hiện ngầm định bởi trình biên dịch.

• Thu hẹp (narrowwing): quá trình làm tròn số từ kiểu dữ liệu có kích thước

lớn hơn sang kiểu có kích thước nhỏ hơn Kiểu biến đổi này có thể làm mất thông tin như ví dụ ở trên

Chuyển kiểu loại này không thể thực hiện ngầm định bởi trình biên dịch, người dùng phải thực hiện chuyển kiểu tường minh

% : Lấy modul hay phép lấy dư

++: tăng thêm 1: a++ a = a + 1

t = a++; t = a; và a = a + 1;

t = ++a; a = a ++; và t = a;

–: tương tự như ++; giảm đi 1;

Phép gán giá trị: +=, *=, -=; /=; %=; tính phép toán trước rồi thực hiện phép gán;VD: a +=2; a = a + 2;

Trang 24

^: XOR: trả về true nếu và chỉ nếu 1 trong các giá trị là true còn lai là false

- Toán tử điều kiện

? : ;

clause 1: Biểu thức logic

clause 2: trả về nếu clause 1 trả về true

clause 3: trả về nếu clause 1 trả về false

VD: (1 > 2) ? (System.out.print(” 1 Lớn hơn 2″)):(System.out.print(“1 nhỏ hơn 2”));

Kết quả: 1 nhỏ hơn 2

1.2.4 Mảng trong Java

Thường thì mảng là một tập hợp các phần tử có kiểu tương tự nhau mà có vị

Trang 25

trí ô nhớ liền kề Mảng trong Java là một đối tượng chứa các phần tử có kiểu dữ liệu giống nhau Nó là một cấu trúc dữ liệu, tại đó chúng ta có thể lưu trữ các phần

tử tương tự nhau Chúng ta chỉ có thể lưu trữ một tập hợp cố cố định các phần tử trong một mảng trong Java

Mảng trong Java là dựa trên chỉ mục (index), phần tử đầu tiên của mảng được lưu trữ tại chỉ mục 0

 Khai báo biến mảng trong Java

Để sử dụng một mảng trong một chương trình, bạn phải khai báo một biến

để tham chiếu mảng, và bạn phải xác định kiểu mảng mà biến có thể tham chiếu Dưới đây là cú pháp để khai báo một biến mảng:

 Mảng 1 chiều: Có 2 cách khai báo như sau:

Cách 1 : Kieu_du_lieu[] Bien_tham_chieu_mang

Cách 2 : Kieu_du_lieu Bien_tham_chieu_mang[]

Cách 1 thông dụng hơn Còn cách 2 xuất phát từ ngôn ngữ lập trình C/C++

và được chấp nhận trong Java

 Mảng nhiều chiều :

Kieu_du_lieu[][][] Bien_tham_chieu_mang

 Tạo mảng trong Java

Bạn có thể tạo một mảng bởi sử dụng toán tử new với cú pháp sau:

Bien_tham_chieu_mang = new Kieu_du_lieu[Kich_co_mang] ;

Trang 26

1.2.5 Điều khiển vòng lặp trong Java

Có thể có một tình huống khi chúng ta cần thực hiện một khối code một vài lần, điều này có thể được xem như một vòng lặp

Java có 3 kỹ thuật lặp linh động :

 Vòng lặp while

 Vòng lặp do…while

 Vòng lặp for

 Vòng lặp while trong Java

Một vòng lặp while là một cấu trúc điều khiển cho phép bạn lặp đi lặp lại một tác vụ một số lần nào đó Ta xét điều kiện trước, đúng rồi mới thực hiện khối lệnh

Trang 27

}

Trang 28

1.3 Thiết kế giao diện

1.3.1 Java Swing cơ bản

Java Swing là một phần của Java Foundation Classes (JFC) được sử dụng

để tạo các ứng dụng Window-Based Nó được xây dựng ở trên cùng của AWT (Abstract Windowing Toolkit) API và được viết hoàn toàn bằng Java

Không giống AWT, Java Swing cung cấp các thành phần (Component) gọn nhẹ và độc lập nền tảng Javax.swing Package cung cấp các lớp cho Java Swing chẳng hạn như JButton, JTextField, JTextArea, JRadioButton, JCheckbox, JMenu, JColorChooser, …

1.3.2 Tổng quan về Java Swing

 Điểm khác nhau giữa AWT và Swing

 Cấu trúc thứ bậc của các lớp trong Java Swing

Trang 29

 Các phương thức được sử dụng phổ biến của lớp Component

Trang 30

1.3.3 Các thành phần cơ bản trong Java Swing

 Lớp Jlabel

Lớp JLabel có thể hiển thị hoặc text, hoặc hình ảnh hoặc cả hai Các nội dung của Label được gán bởi thiết lập căn chỉnh ngang và dọc trong khu vực hiển thị của nó Theo mặc định, các label được căn chỉnh theo chiều dọc trong khu vực hiển thị Theo mặc định, text-only label là căn chỉnh theo cạnh, image-only label là căn chỉnh theo chiều ngang

Constructor của lớp JLabel trong Java Swing:

 JLabel(): Tạo một instance của JLabel, không có hình ảnh, và với một chuỗi trống cho title

 JLabel(Icon image): Tạo một instance của JLabel với hình ảnh đã cho

 JLabel(Icon image, int horizontalAlignment): Tạo một instance của JLabel với hình ảnh và căn chỉnh ngang đã cho

 JLabel(String text): Tạo một instance của JLabel với text đã cho

 JLabel(String text, Icon icon, int horizontalAlignment): Tạo một instance

Trang 31

của JLabel với text, hình ảnh, và căn chỉnh ngang đã cho.

 JLabel(String text, int horizontalAlignment): Tạo một instance của JLabel với text và căn chỉnh ngang đã cho

 Lớp JButton

Lớp JButton được sử dụng để tạo một nút button mà có trình triển khai là độc lập nền tảng Thành phần này có một label và tạo một sự kiện (event) khi được nhấn Nó cũng có thể có Image

Lớp JButton có các constructor sau:

 JButton(): Tạo một button mà không thiết lập text hoặc icon

 JButton(Action a): Tạo một button tại đây các thuộc tính được nhận từ Action đã cung cấp

 JButton(Icon icon): Tạo một button với một icon

 JButton(String text): Tạo một button với text

 JButton(String text, Icon icon): Tạo một button với text ban đầu và một icon

 Lớp JSpinner

Lớp JSpinner là một thành phần cho phép người dùng lựa chọn một số hoặc một giá trị đối tượng từ một dãy đã qua sắp xếp bởi sử dụng một trường đầu vào

Các constructor của lớp JSpinner trong Java Swing:

 JSpinner(): Xây dựng một spinner với một Integer SpinnerNumberModel với giá trị khởi tạo 0 và không có giới hạn lớn nhất và nhỏ nhất

Trang 32

 JSpinner(SpinnerModel model): Xây dựng một spinner đầy đủ với một cặp nút next/previous và một editor cho SpinnerModel.

Các phương thức của lớp JSpinner trong Java Swing:

TT Phương thức & Miêu tả

1 void removeChangeListener(ChangeListener listener)

Xóa một ChangeListener từ spinner này

2 void setEditor(JComponent editor)

Thay đổi JComponent mà hiển thị giá trị hiện tại của SpinnerModel

3 void setModel(SpinnerModel model)

Thay đổi model mà biểu diễn giá trị của spinner này

4 void setUI(SpinnerUI ui)

Thiết lập đối tượng L&F mà truyền spinner này

5 void setValue(Object value)

Thay đổi giá trị hiện tại của model, đặt trưng của giá trị này là được hiển thị bởi Editor

6 void updateUI()

Phục hồi thuộc tính UI về giá trị L&F hiện tại

7 void addChangeListener(ChangeListener listener)

Thêm một listener tới list mà được thông báo mỗi khi xuất hiện một thay đổi tới model

8 void commitEdit()

Ký thác giá trị đã sửa đổi hiện tại tới SpinnerModel

Trang 33

9 protected JComponent createEditor(SpinnerModel model)

Phương thức này được gọi bởi các constructor để tạo JComponent mà hiển thị giá trị hiện tại của dãy

10 protected void fireStateChanged()

Gửi một ChangeEvent, có source là JSpinner này, tới mỗi ChangeListener

Lớp JTextField là một thành phần cho phép sửa đổi một dòng text đơn

Các constructor của lớp JTextField trong Java Swing:

 JTextField(): Xây dựng một TextField mới

 JTextField(Document doc, String text, int columns): Xây dựng một JTextField mới mà sử dụng mô hình lưu trữ text đã cho và số cột đã cho

 JTextField(int columns): Xây dựng một TextField mới và trống với số cột

Trang 34

khởi tạo với text và các cột đã cho.

Các phương thức được sử dụng phổ biến của lớp JTextField trong Java Swing

STT Phương thức & Miêu tả

Thiết lập chuỗi lệnh được sử dụng cho action event

2 void setColumns(int columns)

Thiết lập số cột trong TextField này, và sau đó làm mất hiệu lựa layout đó

Liên kết editor với một tài liệu text

4 void setFont(Font f)

Thiết lập font hiện tại

5 void setHorizontalAlignment(int alignment)

Thiết lập căn chỉnh ngang cho text

6 void setScrollOffset(int scrollOffset)

Thiết lập scroll offset, giá trị pixel

7 protected void actionPropertyChanged(Action action, String

Trang 35

9 protected void configurePropertiesFromAction(Action a)

Thiết lập các thuộc tính của textfield này để kết nối chúng trong Action

11 protected Document createDefaultModel()

Tạo trình triển khai mặc định của model để được sử dụng tại sự xây dựng nếu không được cung cấp tường minh

12 Action[] getActions()

Gọi danh sách lệnh cho trình soạn thảo Editor

13 void postActionEvent()

Xử lý action event xảy ra trên textfield này bằng cách gửi chúng tới bất

cứ đối tượng ActionListener đã được đăng ký nào

Trang 36

CHƯƠNG 2: XÂY DỰNG BÀI TOÁN DỰ BÁO ẢNH MÂY VỆ TINH

Dự báo là một khoa học và nghệ thuật tiên đoán những sự việc sẽ xảy ra trong tương lai, trên cơ sở phân tích khoa học về các dữ liệu đã thu thập được Khi tiến hành dự báo cần căn cứ vào việc thu thập, xử lý số liệu trong quá khứ và hiện tại để xác định xu hướng vận động của các hiện tượng trong tương lai nhờ vào một

số mô hình toán học

Một trong những lĩnh vực dự báo quan trọng là dự báo thời tiết Trong dự báo thời tiết có các kiểu dự báo như dự báo ngắn hạn (nowcasting), dự báo trung hạn và dự báo dài hạn, tùy thuộc vào đặc trưng, chu kì của yếu tố khí hậu, mục tiêu

dự báo, dữ liệu để dự báo Ở đây chúng ta đề cập đến vấn đề dự báo ngắn hạn, tức trong một khoảng thời gian ngắn, dưới 6 tiếng

Việc dự báo tương lai là chưa rõ ràng, thông tin thu thập được thường không đầy đủ nên ta sử dụng logic mờ để giải quyết vấn đề dự báo Để tăng tính chính xác, người ta thường kết hợp các phương pháp khác nhau cho cùng một đối tượng

dự báo

2.1 Phương pháp dự báo kết hợp phân cụm với luật mờ

Con người đưa ra quyết định dựa trên các quy luật mà họ tổng kết được từ thực tiễn cuộc sống, hay nói cách khác là qua quá trình học Rõ ràng nếu một hệ thống chỉ được lập trình sẵn bởi tập hợp các luật theo lôgic thông thường mà thiếu khả năng máy học thì không thể trở thành một hệ thống thông minh độc lập

Với đặc trưng gần gũi với suy luận tự nhiên của con người và khả năng học,

hệ mờ đã và đang được nghiên cứu, ứng dụng thành công với vai trò như một trong những công cụ làm cho “máy móc thông minh hơn”

Trang 37

giản, nếu ngày mai thời tiết tốt, chúng ta có thể đi du lịch Nhưng nếu dự báo thời tiết nói rằng ngày mai có mưa và ngày kia trời đẹp, chúng ta có thể không đi vào ngày mai mà hoãn lại đến ngày kia Bản chất các luật của con người đều có cấu trúc dạng “nếu - thì” (if - then).

Với mục máy đích giúp máy móc bắt chước các hành vi quyết định của con người cũng như khai thác khả năng máy học, ta tìm cách trang bị cho hệ thống các luật mô phỏng dạng “if - then” nhưng khác ở chỗ: các quyết định và giá trị của các quyết định được thay thế bởi các tập mờ và các luật là luật mờ (fuzzy rules)

Vậy một luật mờ đơn giản là một cấu trúc dạng:

“IF x is A THEN y is B” trong đó x, y là các biến ngôn ngữ trên các không gian nền tương ứng X, Y, A F(X), B F(Y) Mệnh đề mờ “x is A” là sự kiện mờ và được gọi là phần “nếu” (IF) hay tiền đề (premise) Tương tự, “y is B” là phần tử

“thì” (THEN) hay kết luận (consequent)

Một cách mở rộng tự nhiên, khi hệ thống có n đầu vào, ta xây dựng n biến ngôn ngữ tương ứng với các đầu vào đó và thu được luật mờ phản ánh quan hệ giữa n biến vào và 1 biến ra

Định nghĩa 1.5: Cho là không gian nền của n biến ngôn ngữ

vào: là không gian nền của biến ra y Luật mờ tổng quát là một cấu trúc có dạng:

R: IF and and and THEN y is B, trong đó

.Dựa trên cơ sở luật mờ, suy luận xấp xỉ hay còn gọi là suy diễn mờ là quá trình suy ra những kết luận dưới dạng các mệnh đề mờ trong điều kiện các quy tắc, các luật, các dữ liệu đầu vào cho trước không hoàn toàn chính xác

Trong thực tế, đặc biệt trong các hệ thống điều khiển, trợ giúp quyết định, mỗi đầu vào của hệ thống có thể xảy ra nhiều khả năng khác nhau Hay nói cách

Trang 38

khác, tập giá trị của mỗi biến ngôn ngữ tương ứng với một đầu vào gồm nhiều từ, ngôn ngữ khác nhau Khi đó hệ thống trở lên phức tạp với nhiều luật mờ khác nhau Tập hợp tất cả các luật mờ của hệ thống tạo thành một hệ mờ.

2.2 Quy trình suy diễn mờ

Sử dụng hệ mờ trong dự báo: Dựa trên dữ liệu mẫu huấn luyện, một quy trình sinh luật được áp dụng để tạo ra một hệ các luật mờ Hệ luật này được trích rút ra

từ quá khứ, làm tiền đề cho dự báo Tiếp theo, mỗi đầu vào mới được áp dụng với từng luật và tính toán các đầu ra Một quy trình tổng hợp kết quả từ các luật để cho

ra một giá trị chung Cuối cùng, ở bước dự báo, giá trị này được điều chỉnh chuẩn hóa để đưa ra giá trị dự báo cuối cùng

Giả sử, ban đầu ta có nhiều ảnh mây vệ tinh đầu vào, ta số hóa được các ảnh đấy, tính chênh lệch giữa các ảnh với nhau từng đôi một, áp dụng thuật toán FC-PFS

để phân cụm độ chênh lệch đó, ta thu được các tâm cụm, độ thuộc, độ không thuộc,

độ phủ nhận Tâm cụm là phần tử đặc trưng của cụm, thể hiện rõ nét nhất về cụm đó Mỗi một cụm dữ liệu lại đặc trưng bởi một luật Luật này miêu tả diễn biến, ý nghĩa biến đổi của dữ liệu trong cụm Do đó, nếu bằng cách nào đó ta có thể sinh ra một

luật từ mỗi tâm cụm thì với C cụm, ta sẽ có một hệ C luật tương ứng với toàn bộ dữ

liệu quan sát

Hàm thuộc được sử dụng rộng rãi nhất là hàm thuộc tam giác, tuy nhiên

chúng ta đổi mới để thích ứng với các bộ PFS Hàm thuộc mới được mô tả bởi 5 số thực (a’, a, b, c, c’) với (a’ < a < b < c < c’) và được biểu diễn như sau:

Trang 39

(2.1)

(2.2)

Hình 1: Luật mờ tam giác

Với , giá trị của độ do dự và độ phủ định được tính trong công thức:

Trang 40

(2.4)

Giá trị giải mờ được tính như sau:

(2.5)

2.3 Mô hình và cơ chế suy diễn

Các bước của bài toán dự báo sử dụng kết hợp phân cụm mờ và sinh luật mờ

Hình 2: Quy trình bài toán dự báo Bước 1: Tiền xử lý

Bộ dữ liệu gốc được chia thành 2 mẫu: training và testing Áp dụng công thức tính chênh lệch sau đối với bộ training:

(2.6)

Trong đó, Rk (i) là tỉ lệ chênh lệch, , , thời điểm i Một bộ dữ

liệu có d bộ thời gian đầu vào T1(t), T2(t),………., Td (t), và một bộ thời gian đầu ra

Ngày đăng: 23/04/2017, 16:20

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Thong, P. H. Picture fuzzy clustering: a new computational intelligence method. Soft Computing, 1-14 Sách, tạp chí
Tiêu đề: Soft Computing
[2]. Bezdek, J. C., Ehrlich, R., &amp; Full, W., FCM: The fuzzy c-means clustering algorithm, Computers &amp; Geosciences (1984), 10(2), 191-203 Sách, tạp chí
Tiêu đề: Computers & Geosciences" (1984),"10
Tác giả: Bezdek, J. C., Ehrlich, R., &amp; Full, W., FCM: The fuzzy c-means clustering algorithm, Computers &amp; Geosciences
Năm: 1984
[3]. Cuong, B. C., Son, L. H., &amp; Chau, H. T. M. (2010, August). Some context fuzzy clustering methods for classification problems. In Proceedings of the 2010 Symposium on Information and Communication Technology (pp. 34-40).ACM Sách, tạp chí
Tiêu đề: Proceedings of the 2010 Symposium on Information and Communication Technology
Tác giả: Cuong, B. C., Son, L. H., &amp; Chau, H. T. M
Năm: 2010
[4]. Thong, P. H. (2015). A New Approach to Multi-variable Fuzzy Forecasting Using Picture Fuzzy Clustering and Picture Fuzzy Rule Interpolation Method. In Knowledge and Systems Engineering (pp. 679-690). Springer International Publishing Sách, tạp chí
Tiêu đề: Knowledge and Systems Engineering
Tác giả: Thong, P. H
Năm: 2015
[5]. Chaudhari, S., Patil, M., &amp; Bambhori, J. (2014). Study and review of fuzzy inference systems for decision making and control. AIJRSTEM, 5(1), 88-92 Sách, tạp chí
Tiêu đề: AIJRSTEM,5
Tác giả: Chaudhari, S., Patil, M., &amp; Bambhori, J
Năm: 2014
[6]. Chen, S.M., Chang, Y.C.: Multi-variable fuzzy forecasting based on fuzzy cluster-ing and fuzzy rule interpolation techniques. Information Sciences 180(24), 4772-4783 (2010) Khác

HÌNH ẢNH LIÊN QUAN

Sơ đồ thuật toán FCM: - Ứng dụng phân cụm mờ trong bài toán dự báo ảnh mây vệ tinhb
Sơ đồ thu ật toán FCM: (Trang 10)
Bảng 1: Các kiểu dữ liệu cơ bản trong Java - Ứng dụng phân cụm mờ trong bài toán dự báo ảnh mây vệ tinhb
Bảng 1 Các kiểu dữ liệu cơ bản trong Java (Trang 21)
Hình 1: Luật mờ tam giác - Ứng dụng phân cụm mờ trong bài toán dự báo ảnh mây vệ tinhb
Hình 1 Luật mờ tam giác (Trang 39)
Hình 2: Quy trình bài toán dự báo Bước 1: Tiền xử lý - Ứng dụng phân cụm mờ trong bài toán dự báo ảnh mây vệ tinhb
Hình 2 Quy trình bài toán dự báo Bước 1: Tiền xử lý (Trang 40)
Hình 3: Bộ ảnh dữ liệu 1 - Ứng dụng phân cụm mờ trong bài toán dự báo ảnh mây vệ tinhb
Hình 3 Bộ ảnh dữ liệu 1 (Trang 44)
Hình 4: Bộ ảnh dữ liệu 2 - Ứng dụng phân cụm mờ trong bài toán dự báo ảnh mây vệ tinhb
Hình 4 Bộ ảnh dữ liệu 2 (Trang 45)
Hình 5: Bộ ảnh dữ liệu 3 - Ứng dụng phân cụm mờ trong bài toán dự báo ảnh mây vệ tinhb
Hình 5 Bộ ảnh dữ liệu 3 (Trang 46)
Hình 6: Kết quả chạy chương trình của bộ dữ liệu 1 - Ứng dụng phân cụm mờ trong bài toán dự báo ảnh mây vệ tinhb
Hình 6 Kết quả chạy chương trình của bộ dữ liệu 1 (Trang 48)
Hình 7: Kết quả chạy chương trình của bộ dữ liệu 2 - Ứng dụng phân cụm mờ trong bài toán dự báo ảnh mây vệ tinhb
Hình 7 Kết quả chạy chương trình của bộ dữ liệu 2 (Trang 49)
Hình 8: Kết quả chạy chương trình của bộ dữ liệu 3 - Ứng dụng phân cụm mờ trong bài toán dự báo ảnh mây vệ tinhb
Hình 8 Kết quả chạy chương trình của bộ dữ liệu 3 (Trang 50)
Bảng 2: Kết quả thực nghiệm với ba bộ dữ liệu - Ứng dụng phân cụm mờ trong bài toán dự báo ảnh mây vệ tinhb
Bảng 2 Kết quả thực nghiệm với ba bộ dữ liệu (Trang 51)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w