Áp dụng thiết kế chương trình bằng maple để giải quyết bài toán - Pdf 26

LẬP TRÌNH SYMBOLIC
Phụ lục
Phụ lục 1
PHẦN I 3
TỔNG QUAN 3
PHẦN II MỘT SỐ LỆNH THÔNG THƯỜNG 4
2.Giải phương trình bậc <5 4
4. Tính giới hạn 4
5. Trục căn thức ở mẫu 5
7. Lệnh vẽ đồ thị 5
8. Đồ thị hàm phần nguyên 7
10. Ma trận kề 8
12. Vòng lập for 9
13. Vòng lập while 9
15. Đơn giản biểu thức 10
PHẦN III 12
ỨNG DỤNG MAPLE VÀO BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT BẰNG DIJKSTRA 12
I.Mô tả giải thuật dijkstra 12
II.Ví dụ minh họa: 12
III.Áp dụng thiết kế chương trình bằng maple để giải quyết bài toán 14
PHẦN IV 19
KẾT LUẬN 19
PHAN KHÁNH NGUYÊN Trang 1
LẬP TRÌNH SYMBOLIC
LỜI MỞ ĐẦU
Để tiếp cận vào lĩnh vực khám phá các vấn đề tri thức, trí tuệ nhân tạo… thì lập
trình Symbolic (dại biểu là maple ) không thể không được tìm hiểu. Bởi maple cung cấp
những tính năng, tool đang dạng trong các lĩnh vực tính toán, dễ dàng cài đặt và thao tác.
Cám ơn GS.TS. Nguyễn Văn Nhơn đã giúp tôi tiếp cận và tìm hiểu một ngôn ngữ
lập trình lý thú, làm tiền đề cho việc nghiên cứu, phát triển các lĩnh vực khoa học máy
tình sau này.

Th1:
> restart;
> solve( x^4 – 2*x^3 + 2=0, x );
> allvalues({%});
3. Lệnh tính tổng Sum
>
# cộng dồn giá trị của I với i=0,1,2,3=6
4. Tính giới hạn
>
PHAN KHÁNH NGUYÊN Trang 4
LẬP TRÌNH SYMBOLIC
5. Trục căn thức ở mẫu
>
6. Vẽ hình tròn
>
7. Lệnh vẽ đồ thị
>
PHAN KHÁNH NGUYÊN Trang 5
LẬP TRÌNH SYMBOLIC
PHAN KHÁNH NGUYÊN Trang 6
LẬP TRÌNH SYMBOLIC
8. Đồ thị hàm phần nguyên
>
9. Lệnh vẽ đồ thị
> with(GraphTheory):
> W := Matrix([[0,4,2,0,0,0],[4,0,1,5,0,0],[2,1,0,8,10,0],[0,5,8,0,0,6],[0,0,10,0,0,3],
[0,0,0,6,3,0]]);
> G1 := Graph(directed,weighted,W):
> DrawGraph(G1);
PHAN KHÁNH NGUYÊN Trang 7

while (<điều kiện>) do;
thực thi 1
thực thi 2
end;
PHAN KHÁNH NGUYÊN Trang 9
LẬP TRÌNH SYMBOLIC
14. Dùng đệ qui với option remember
Lưu ý : Nếu không sử dụng option remember trong thủ tục này thì ta cũng sẽ gặp khó
khăn khi tính các số hạng lớn.
15. Đơn giản biểu thức
>
Kiểm tra sự tương đương của hai biểu thức logic
Equivalent(bt1,bt2, p);
>
PHAN KHÁNH NGUYÊN Trang 10
LẬP TRÌNH SYMBOLIC
PHAN KHÁNH NGUYÊN Trang 11
LẬP TRÌNH SYMBOLIC
PHẦN III
ỨNG DỤNG MAPLE VÀO BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN
NHẤT BẰNG DIJKSTRA
I. Mô tả giải thuật dijkstra
Giải thuật Dijkstra được giới thiệu vào năm 1959 cung cấp một giải thuật hiệu quả
nhất cho việc giải quyết bài toán đường đi ngắn nhất.Nó tìm đường đi ngắn nhất từ
một đỉnh s đến các đỉnh còn lại của đồ thị và chiều dài (trọng số ) tương ứng. Phương
pháp của thuật toán là xác định tuần tự đỉnh có chiều dài đến s theo thứ tự tăng dần.
Thuật toán được xây dựng trên cơ sở gán cho mỗi đỉnh các nhãn tạm thời. Nhãn tạm thời
của các đỉnh cho biết cận trên của chiều dài đường đi ngắn nhất từ s đến đỉnh đó. Nhãn
của các đỉnh sẽ biến đổi trong các bước lặp, mà ở mỗi bước lặp sẽ có một nhãn tạm thời
trở thành chính thức. Nếu nhãn của một đỉnh nào đó trở thành chính thức thì đó cũng

(∞,1)
2->4
3 1,3,2,4 (12,3)* (14,4) 3->5
4 1,3,2,4,5 (14,4)* 4->6
5 1,3,2,4,5,6
Kết quả của đồ thị sau khi tìm đường đi ngắn nhất ta có
PHAN KHÁNH NGUYÊN Trang 13
LẬP TRÌNH SYMBOLIC
III. Áp dụng thiết kế chương trình bằng maple để giải quyết bài toán
PHAN KHÁNH NGUYÊN Trang 14
>………………………………
i := SourceNode; #diem khoi tao
dist[i] := 0; #chieu dai
pred[i] := 0; #diem khoi tao
in_S := 0; #vi tri node khoi tao
s := { };
while (in_S < NodeCount) do
#### TÌM DUONG DI NGAN NHAT#####
found_one := false;
for j to NodeCount do;
if ((dist[j] <> infinity) and (not (j in s))) then
if (not found_one) then
found_one := true;
i := j;
testval := dist[j];
elif (dist[j] < testval) then
i := j;
testval := dist[j];
end if;
end if;

loadNetwork := proc (Network_def::list)
local n, s, src, all_done, result, first_seq,
seq_data, arc_number,
raw_tail, raw_head, raw_cost,
node_num, arc_num;
global NodeCount, ArcCount, SourceNode,
FS_point, FS_tail, FS_head, FS_cost,
FS_trace, FS_rpoint;
# initialize
n := nops(Network_def);#tong so danh sach con
if (n < 1) then
printf("Do thi rong\n");
return false;
end if;
result := true;
all_done := false;
first_seq := true;
arc_number := 0;
while (not all_done) do;
# read next sequence
if (first_seq) then
# gán danh sach dau tien cua tap danh sach vao seq_data
seq_data := Network_def[1];
# neu so phan tu trong ds khong thoa cau truc la 3 - [dinh,canh,dinh khoi tao]
if (nops(seq_data) <> 3) then
all_done := true;
elif ((seq_data[1] < 1) or (seq_data[2] < 1) or
(seq_data[3] < 1) or (seq_data[3] > seq_data[1])) then
all_done := true;
end if;

all_done := true;
result := false;
else
seq_data := Network_def[arc_number+1]; # add 1 because 1st is node count
if (nops(seq_data) <> 3) then
all_done := true;
#kiem tra xem so dinh, so canh va dinh khoi tao da dung chua
#seq_data[1] la so dinh
#seq_data[1] la so canh
#seq_data[1] la dinh khoi tao
elif ((seq_data[1] < 1) or (seq_data[1] > NodeCount) or
(seq_data[2] < 1) or (seq_data[2] > NodeCount) or
(seq_data[3] < 0)) then
all_done := true;
end if;
if (all_done) then
result := false;
printf("Kiem tra lai so dinh, so canh va diem khoi tao: %s\n", s);
else
raw_tail[arc_number] := seq_data[1];
raw_head[arc_number] := seq_data[2];
raw_cost[arc_number] := seq_data[3];
end if;
end if;
end if;
PHAN KHÁNH NGUYÊN Trang 17
LẬP TRÌNH SYMBOLIC
end;
# validation of data
if (result = true) then

end if;
end;
end;
FS_rpoint[NodeCount+1] := ArcCount + 1;
end if;
# all done
return result;
end proc: # loadNetwork
PHAN KHÁNH NGUYÊN Trang 18
LẬP TRÌNH SYMBOLIC
PHẦN IV
KẾT LUẬN
Maple đã mang lại một công cụ rất hiệu quả trong dạy học, nghiên cứu khoa học
và trong nhiều lĩnh vực khác:
1. Dùng maple để soạn các hệ thống bài tập.
2. Kiểm tra các kết quả của các bài toán chứng minh.
3. Soạn giáo án, vẽ các hình, biểu đồ, phục vụ cho bài giảng và các hoạt động chuyên
môn khác
4. Nghiên cứu các hệ thống tính toán thông minh – trí tuệ nhân tạo
PHAN KHÁNH NGUYÊN Trang 19
LẬP TRÌNH SYMBOLIC
Tài liệu tham khảo
http://thietkenoithat.fhd.com.vn/cac-cau-lenh-can-biet-trong-phan-mem-maple-
615346.htm
http://sinhvienvanlang.com/@rum/showthread.php?t=42268
http://math.hnue.edu.vn/UserFiles/File/MAPLEV.pdf
PHAN KHÁNH NGUYÊN Trang 20


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status