Bài toán tìm bộ ghép cực đại trên đồ thị ứng dụng giải một số bài toán trong thực tế

80 30 0
Bài toán tìm bộ ghép cực đại trên đồ thị ứng dụng giải một số bài toán trong thực tế

Đ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

this.M]; this.Day = new int[this.N]; this.A = new int[M][]; for (int i = 0; i < this.M; i++) this.A[i] = new int[this.N]; for (int i = 0; i < this.M; i++) for (int j = 0; j < this.N; j++) this.A[i][j] = 2; } private void Hang(int i) { int dem = 0; for (int j = 0; j < this.N; j++) { if (this.A[i][j] == && dem < this.P[i]) { this.A[i][j] = 1; dem++; } } } /// Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 69 /// Tao Phuong An Ban Dau /// public void Pal() { for (int i = 0; i < this.M; i++) { this.Hang(i); } } private int TongCot(int j) { int p = 0; for (int i = 0; i < this.M; i++) { if (this.A[i][j] == 1) p++; } return p; } private void TaoDayVoi() { for (int j = 0; j < this.N; j++) this.Day[j] = 0; int t = this.TongCot(0); for (int j = 1; j < this.N; j++) { int tongCotJ = this.TongCot(j); if (t < tongCotJ) t = tongCotJ; } for (int j = 0; j < this.N; j++) { int tongCotJ = this.TongCot(j); if (t == tongCotJ) this.Day[j] = 1; //Cot Day //if (t >= tongCotJ + 2) this.Day[j] = -1; //Cot Voi 1< t -2 if (tongCotJ < t - 2) this.Day[j] = -1; } } private void Gan1() { for (int j = 0; j < this.N; j++) Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 70 { if (this.Day[j] == 1) { this.Gc[j] = 0; for (int i = 0; i < this.M; i++) { if (this.A[i][j] == 1) if (this.Gh[i] == -1) this.Gh[i] = j; } } } } private void Gan2() { for (int i = 0; i < this.M; i++) { if (this.Gh[i] > 0) { for (int j = 0; j < this.N; j++) { if (this.A[i][j] == 0) if (this.Gc[j] == -1) this.Gc[j] = i; } } } } private void GanSo() { int dem = 0; for (int i = 0; i < this.M; i++) { this.Gh[i] = -1; for (int j = 0; j < this.N; j++) { this.Gc[j] = -1; dem = 0; { Gan1(); Gan2(); dem++; } while (dem == (this.N + this.M)); } } Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 71 } private bool TimVoi() { for (int j = 0; j < this.N; j++) { if (this.Day[j] == -1 && this.Gc[j] > 0) { // j 0:=j; this.J0 = j; return true; break; } } return false; } private void Sua(int i, int j) { while (i > && j > 0) { i = this.Gc[j]; this.A[i][j] = - this.A[i][j]; j = this.Gh[i]; if (j > 0) this.A[i][j] = - this.A[i][j]; } } public void ThucHien() { { TaoDayVoi(); GanSo(); if (TimVoi()) Sua(this.Gc[this.J0], this.J0); } while (TimVoi()); } } } Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 72 KẾT LUẬN Kết luận Sau thời gian nghiên cứu về Lý thuyết đồ thị, tìm hiể u những ứng du ̣ng và tính thiết thực lĩnh vực này, luận văn đã đa ̣t đươc̣ những kế t quả sau: Phần lý thuyết: -Tìm hiểu khái niệm đồ thị, đồ thị hai phía -Tìm hiểu thuật tốn giải toán ghép cực đại đồ thị hai phía đồ thị tổng quát Phần thực nghiệm: - Tìm hiể u đươc̣ mô ̣t số ứng du ̣ng của Lý thuyế t đồ thi ̣ và bước đầ u biế t cách ứng du ̣ng lý thuyế t để triể n khai áp du ̣ng giải hai bài toán thực tế: Bài toán xế p lớp ho ̣c theo tín chỉ bài toán điề u hành taxi -Cài đặt thử nghiê ̣m chương trình mô phỏng thuâ ̣t toán Hungari giải toán xếp lớp học theo học chế tín Đây tốn có tính thực tế cao -Các thuật tốn sử dụng tìm ghép cực đại với trọng số cực tiểu đồ thị hai phía thuật tốn theo thuật toán Hung-ga-ri -Thời gian chạy toán nhanh -Giao diện thân thiện và có thể nâng cấ p để áp du ̣ng vào công viê ̣c đào ta ̣o của Trường TCKT Viñ h Phúc Bên cạnh đó, luận văn cịn mơ ̣t sớ nhươc̣ điể m như: Chương trình mới mơ phỏng thuật tốn, chưa mơ tả và giải quyế t hế t các yêu cầ u phát sinh thực tế Hướng phát triển đề tài: Tiếp tục tìm hiểu mơ hình đào tạo theo học chế tín để xây dựng phần mềm hoàn chỉnh, với đầy đủ chức phục vụ cho công việc đào tạo theo học chế tín - mơ hình đào tạo cịn cịn nhiều khó khăn Tìm hiể u thêm những ứng du ̣ng Lý thuyế t đồ thi ̣ để giải quyế t các bài toán thực tế Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 73 TÀ I LIỆU THAM KHẢO Tiếng Việt [1] Lê Minh Hồng, Giải thuật lập trình, Đại học sư phạm Hà Nội 1999-2002 [2] Nguyễn Cam, Chu Đức Khánh, Lý thuyết đồ thị, NXB Thành phố Hồ Chí Minh, 1999 [3] Đinh Mạnh Tường, Cấu trúc liệu thuật toán, NXB KH&KT, 2001 [4] Nguyễn Đức Nghĩa – Nguyễn Tơ Thành, Tốn rời rạc, NXB Đại học Quốc Gia Hà Nội, 2003 [5] Kenneth H.Rosen – Toán rời rạc ứng dụng Tin học (Bản dịch), NXB Khoa học Kỹ thuật, 2003 Tiếng Anh [6] S Dasgupta, C H Papadimitriou, and U V Vazirani, Algorithms, 2006 [7] Edmonds, Jack (1965) "Paths, trees, and flowers" Canad J Math 17: 449– 467 doi:10.4153/CJM-1965-045-4 [8] Hopcroft,JohnE.;RajeevMotwani,JeffreyD.Ullman, Introduction to Automata Theory, Languages and Computation,1stedition,Addison-Wesley, 1979 [9] Narsingh Deo "Graph Theory with Applications to Engineering and Computer Science", New Delhi-110001, 2006 [10] Aho A., The design and analysis of computer algorithms Addison Wesley Pub Comp, London 1976 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn ... những kế t quả sau: Phần lý thuyết: -Tìm hiểu khái niệm đồ thị, đồ thị hai phía -Tìm hiểu thuật tốn giải tốn ghép cực đại đồ thị hai phía đồ thị tổng quát Phần thực nghiệm: - Tìm hiể u đươc̣ mô... chế tín Đây tốn có tính thực tế cao -Các thuật tốn sử dụng tìm ghép cực đại với trọng số cực tiểu đồ thị hai phía thuật tốn theo thuật toán Hung-ga-ri -Thời gian chạy toán nhanh -Giao diện thân... Minh Hồng, Giải thuật lập trình, Đại học sư phạm Hà Nội 1999-2002 [2] Nguyễn Cam, Chu Đức Khánh, Lý thuyết đồ thị, NXB Thành phố Hồ Chí Minh, 1999 [3] Đinh Mạnh Tường, Cấu trúc liệu thuật toán, NXB

Ngày đăng: 23/03/2021, 21:29

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan