TRƯỜNG ĐẠI HỌC MỎ ĐỊA CHẤT KHOA CÔNG NGHỆ THÔNG TIN TRÍ TUỆ NHÂN TẠO Đề tài: Viết chương trình giải toán phân công công việc cách ứng dụng nguyên lý thứ tự GIÁO VIÊN HƯỚNG DẪN: TS LÊ VĂN HƯNG NHÓM SINH VIÊN THỰC HIỆN: VĂN HUY NAM HOÀNG THỊ PHƯƠNG THẢO Lời nói đầu Năng lực máy tính ngày mạnh mẽ điều kiện thuận lợi cho trí tuệ nhân tạo: cho phép chương trình máy tính áp dụng thuật giải trí tuệ nhân tạo có khả phản ứng nhanh hiệu trước Khả tất sản phẩm trí tuệ nhân tạo khiêm tốn ngành khoa học tiến ngày tỏ hữu dụng số công việc đòi hỏi trí thông minh người trí tuệ nhân tạo trở thành phần thiết yếu công nghiệp kỹ thuật, cung cấp giải pháp cho vấn đề khó khăn ngành khoa học máy tính Đối với lập kế hoạch hệ thống thông minh phải biết thiết lập mục tiêu cách đạt chúng, có khả chọn phương thức tốt phương thức có sẵn để đạt mục tiêu Áp dụng lĩnh vực trí tuệ nhân tạo vào toàn phân công công việc ta thấy cho kết tốt Trong tập phân công công việc nhóm chúng em sử dụng ngôn ngữ C để làm toán Chương 1: Phân tích toán Đề bài: Một công ty nhận hợp đồng gia công m chi tiết C1, C2, …, Cn Cty có n máy gia công M1, M2, …, Mm Mỗi chi tiết gia công máy Một gia công chi tiết máy, công việc tiếp tục lúc hoàn thành Việc gia công chi tiết Ci máy cần dùng thời gian ti Tìm cách phân bổ công việc để thời gian hoàn thành toàn chi tiết nhanh Phân tích toán Sử dụng nguyên lý thứ tự xếp n công việc tăng dần theo thời gian vào m máy Ví dụ: Cụ thể có máy M1, M2, M3 chi tiết với thời gian tương ứng t1=2, t2=5, t3=8, t4=1, t5=5, t6=1 Khi xếp theo thứ tự tăng dần ta được: t4=1, t6=1, t1=2, t2=5, t5=5 , t3=8 Lần lượt xếp chi tiết theo thứ tự vào máy dư nhiều thời gian Phương án L* phương án tối ưu với tổng thời gian 8, thời gian hoàn thành chi tiết C3 Độ phức tạp O(n) Chương 2: Thuật giải code #include #include Định nghĩa kiểu liệu cho công việc gồm biến đếm phần tử mảng, biến tính tổng thời gian máy làm việc biến mảng gồm max công việc máy làm typedef struct { int bot;//bien dem chi phan tu tiep theo cua array int sum; int array[MAX]; }MAY; Xuất mảng void XuatMang(int a[], int n) { for(int i=0; i