1. Trang chủ
  2. » Cao đẳng - Đại học

Ứng dụng Excel giải từng bước bài toán vận tải

73 721 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 73
Dung lượng 589,47 KB

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

Nội dung

Trong quá trình nghiên cứu, em đã tham khảo và kếthừa những thành quả nghiên cứu của các nhà khoa học và các nhànghiên cứu với sự trân trọng và lòng biết ơn.Em xin cam đoan những kết quả

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2

KHOA TOÁN

Nguyễn Thị Hoàng Oanh

ỨNG DỤNG EXCEL GIẢI TỪNG BƯỚC

BÀI TOÁN VẬN TẢI

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC

Hà Nội – Năm 2017

Trang 2

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2

KHOA TOÁN

Nguyễn Thị Hoàng Oanh

ỨNG DỤNG EXCEL GIẢI TỪNG BƯỚC

BÀI TOÁN VẬN TẢI

Chuyên ngành: Toán ứng dụng

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC

NGƯỜI HƯỚNG DẪN KHOA HỌC:

Th.S Phạm Văn Duẩn

Hà Nội – Năm 2017

Trang 3

Trước khi trình bày nội dung chính của khóa luận, em xin bày tỏ lờibiết ơn sâu sắc tới thầy giáo Th.S Phạm Văn Duẩn người đã tận tìnhhướng dẫn em để hoàn thành khoá luận này.

Em cũng xin bày tỏ lòng biết ơn chân thành tới toàn thể các thầy côtrong tổ Toán ứng dụng nói riêng và các thầy cô khoa Toán trườngĐại học Sư Phạm Hà Nội 2 nói chung đã quan tâm động viên khích

lệ và dạy bảo em tận tình trong suốt quá trình hoàn thành khóa luận

và học tập tại khoa

Hà Nội, ngày 22 tháng 4 năm 2017

Sinh viên thực hiện

Nguyễn Thị Hoàng Oanh

Trang 4

Khoá luận tốt nghiệp này của em được hoàn thành dưới sự hướng dẫnnhiệt tình của thầy giáo, Thạc sĩ Phạm Văn Duẩn cùng với sự cố gắngcủa bản thân Trong quá trình nghiên cứu, em đã tham khảo và kếthừa những thành quả nghiên cứu của các nhà khoa học và các nhànghiên cứu với sự trân trọng và lòng biết ơn.

Em xin cam đoan những kết quả nghiên cứu của đề tài Ứng dụngExcel giải từng bước bài toán vận tải không có sự trùng lặp với kếtquả của các đề tài khác Nếu sai em xin hoàn toàn chịu trách nhiệm

Hà Nội, ngày 22 tháng 4 năm 2017

Sinh viên thực hiện

Nguyễn Thị Hoàng Oanh

Trang 5

1 Kiến thức chuẩn bị 3

1.1 Thiết lập bài toán vận tải 3

1.2 Bảng vận tải 7

1.3 Cách phá vỡ vòng và xây dựng vòng 12

1.4 Tìm phương án cơ sở xuất phát 14

1.4.1 Phương pháp góc tây bắc 15

1.4.2 Phương pháp cực tiểu cước phí 16

1.5 Các thuật toán giải bài toán vận tải 16

1.5.1 Thuật toán quy 0 cước phí các ô chọn 16

1.5.2 Thuật toán thế vị 19

2 GIỚI THIỆU, TÌM HIỂU VỀ VBA 23 2.1 Ghi và thực hiện macro 23

2.2 Cách thực hiện một Macro đơn giản 24

2.2.1 Thực hiện macro từ một đối tượng đồ họa trong worksheet 25

2.2.2 Chạy macro từ nút lệnh trên thanh công cụ 25

2.2.3 Chạy macro từ lệnh trong menu của Excel 27

2.2.4 Thay đổi lựa chọn trong Macro 29

Trang 6

2.3 Ngữ pháp VB (Visual Basic Grammar) 29

2.3.1 Các đối tượng (Objects) 29

2.3.2 Các phương thức (Methods) 30

2.3.3 Các thuộc tính (Properties) 31

2.3.4 Các biến Variables 32

2.4 Viết macro 35

2.4.1 Viết macro 35

2.4.2 Sửa chữa lỗi 38

2.5 Câu trúc điều khiển 39

2.5.1 Câu lệnh IF 39

2.5.2 Xây dựng câu điều kiện 41

2.5.3 Hành động lặp (Loop) 44

3 Giải từng bước bài toán vận tải bằng Excel 54 3.1 Tìm phương án cơ sở xuất phát bằng phương pháp góc tây bắc 54

3.2 Sử dụng thuật toán thế vị giải bài toán vận tải 58

Trang 7

Trước khi trình bày nội dung chính của khóa luận, em xin bày tỏ lờibiết ơn sâu sắc tới thầy giáo Th.S Phạm Văn Duẩn người đã tận tìnhhướng dẫn em để hoàn thành khoá luận này.

Em cũng xin bày tỏ lòng biết ơn chân thành tới toàn thể các thầy côtrong tổ Toán ứng dụng nói riêng và các thầy cô khoa Toán trườngĐại học Sư Phạm Hà Nội 2 nói chung đã quan tâm động viên khích

lệ và dạy bảo em tận tình trong suốt quá trình hoàn thành khóa luận

và học tập tại khoa

Hà Nội, ngày 22 tháng 4 năm 2017

Sinh viên thực hiện

Nguyễn Thị Hoàng Oanh

Trang 8

Khoá luận tốt nghiệp này của em được hoàn thành dưới sự hướng dẫnnhiệt tình của thầy giáo, Thạc sĩ Phạm Văn Duẩn cùng với sự cố gắngcủa bản thân Trong quá trình nghiên cứu, em đã tham khảo và kếthừa những thành quả nghiên cứu của các nhà khoa học và các nhànghiên cứu với sự trân trọng và lòng biết ơn.

Em xin cam đoan những kết quả nghiên cứu của đề tài Ứng dụngExcel giải từng bước bài toán vận tải không có sự trùng lặp với kếtquả của các đề tài khác Nếu sai em xin hoàn toàn chịu trách nhiệm

Hà Nội, ngày 22 tháng 4 năm 2017

Sinh viên thực hiện

Nguyễn Thị Hoàng Oanh

Trang 10

1 Lý do chọn đề tài

Quy hoạch tuyến tính là một trong số những môn học bắt buộc đốivới sinh viên nhiều ngành học khác nhau từ ngành học cơ bản nhưtoán học cho đến các ngành khoa học kĩ thuật và kinh tế Bài toánvận tải là một dạng đặc biệt của quy hoạch tuyến tính Song song vớinghiên cứu lý thuyết, việc phát triển các chương trình máy tính giảibài toán vận tải với kích thước đủ lớn để áp dụng được vào thực tiễncũng đã đạt được nhiều thành tựu đáng kể

Với mong muốn được nghiên cứu và tìm hiểu sâu hơn về bộ môn nàyđồng thời giúp sinh viên có công cụ để kiểm tra các bước làm của bàitoán vận tải, bước đầu làm quen với công việc nghiên cứu khoa học,dưới góc độ là một sinh viên chuyên ngành Toán, trong phạm vi củamột khoá luận tốt nghiệp em đã chọn đề tài Ứng dụng Excel giảitừng bước bài toán vận tải

2 Mục đích và nhiệm vụ nghiên cứu

- Nghiên cứu về Lập trình trong Excel để giải các bước của bài toánvận tải

- Ứng dụng phần mềm Excel giải từng bước bài toán vận tải

Trang 11

3 Phương pháp nghiên cứu

- Nghiên cứu tổng hợp tài liệu, phân tích, tổng hợp kiến thức phục vụcho mục đích nghiên cứu

- Sử dụng phần mềm Excel

4 Đối tượng nghiên cứu

- Các bước giải bài toán vận tải

- Sử dụng phần mềm VBA (Visual Basic for Application)

5 Phạm vi nghiên cứu

Phần mềm lập trình trong Excel để giải từng bước bài toán vận tải

6 Cấu trúc của khoá luận

Ngoài mục lục, phần mở đầu, phần kết luận và tài liệu tham khảo,khoá luận gồm 3 chương:

Chương 1: Kiến thức chuẩn bị

Chương 2: Giới thiệu, tìm hiểu về VBA

Chương 3: Giải từng bước bài toán vận tải bằng Excel

Trang 12

Kiến thức chuẩn bị

1.1 Thiết lập bài toán vận tải

Bài toán vận tải là một trong những mô hình có nhiều ứng dụng trongthực tế Trước hết ta xét bài toán vận tải cân bằng thu- phát Bài toánđược phát biểu như sau:

Có m điểm A1, A2, A3, , Am cung cấp một lợi mặt hàng nào đó cókhối lượng tương ứng a1, a2, a3, , am(ai ≥ 0, i = 1, m) và n điểm

B1, B2, B3, , Bntiêu thụ loại hàng đó với khối lượng tương ứng b1, b2, b3, , bn (bj ≥ 0, j = 1, n) Ta gọi Ai(i = 1, m) là điểm phát thứ i, Bj

(j=1, n) là điểm thu thứ j Giả thiết rằng tổng lượng hàng cần phát đi

ở các điểm phát bằng tổng thu về ở các điểm thu (Xm

Giả sử chi phí vận chuyển một đơn vị(chẳng hạn: tấn) hàng từ Ai đến

Bj là cij đơn vị tiền (chẳng hạn: đồng) Ma trận C=(cij)m×n gọi là matrận cước phí

Hãy lập kế hoạch vận chuyển từ mỗi điểm phát tới mỗi điểm thu baonhiêu đơn vị sao cho:

Trang 13

+ Các điểm phát đều hết hàng.

+ Các điểm thu đều nhận đủ hàng

+ Tổng cước phí vận chuyển là nhỏ nhất

Ta sẽ xây dựng mô hình toán học cho bài toán trên

Gọi xij là số đơn vị hàng chuyển từ Ai đến Bj, tất nhiên xij ≥ 0(i =

1, m, j = 1, n) Tổng lượng hàng phát đi từ Ai đến mọi Bj bằng ai,tức là

đó số ẩn thường khá lớn (m × n ẩn và m + n ẩn phụ), số ràng buộccũng nhiều(m + n ràng buộc) và việc đó thường dẫn đến những chiphí tính toán không cần thiết Tuy nhiên lợi dụng cấu trúc đặc biệt

Trang 14

của bài toán vận tải ta có thể cụ thể hơn nữa thuật toán đơn hình vàthu được thuật toán đơn giản và hiệu quả để giải nó Ta viết lại các

ma trận phương án, ma trận cước phí thành các véc tơ:

X = (x11, x12, , x1n; x21, x22, , x2n; ; xm1, xm2, , xmn)

c = (c11, c12, , c1n; c21, c22, , c2n; ; cm1, cm2, , cmn)

và ký hiệu b = (a1, a2, , am; b1, b2, , bn)

A là ma trận ràng buộc gồm m+n hàng m.n cột, thành phần thứ i vàthành phần thứ j bằng 1 còn các thành phần còn lại đều bằng 0.Khi đó bài toán vận tải có thể viết lại như sau:

Ta thấy định thức của ma trận vuông cấp m+n−1của A gồm các phần

tử nằm ở vị trí giao của các cột Aii, i = 1, m − 1 và Amj; j = 1, n của Adòng d1, d2, , dm−1, dm+1, , dm+ n bằng 1 Vậy rankA = m + n − 1.Định lý 1.1 Điều kiện cân bằng thu phát (

Trang 15

cần và đủ để bài toán vận tải có phương án tối ưu.

Chứng minh Giả sử bài toán vận tải có phương án tối ưu X∗=x∗

ij, khiđó

Trang 17

vào góc trên phía trái và lượng vận chuyển xij trong phương án X vàogóc dưới phía phải.

Định nghĩa 1.1 Những ô (i, j) ∈ U với xij > 0 gọi là những ô chọnứng với phương án X Những ô còn lại gọi là những ô loại

Ô chọn đặc trưng cho tuyến đường có vận tải hàng hóa qua

Định nghĩa 1.2 Một dãy các ô (i, j) ∈ U mà hai ô (và không quá2) liên tiếp của dãy luôn nằm trên cùng một hàng hoặc cùng một cộtgọi là dây chuyền

Định nghĩa 1.3 Một dây chuyền khép kín gọi là một vòng (hoặcmột chu trình)

Định nghĩa 1.4 Ta nói rằng L là chứa vòng nếu từ các ô của L ta cóthể xây dựng ít nhất một vòng Ngược lại, ta nói rằng L không chứavòng

Ta có thể nhận biết được tập L có chứa vòng hay không nhờ Định

lý 1.2:

Định lý 1.2 Nếu trong mỗi dòng và mỗi cột của bảng vận tải hoặckhông có ô nào của L hoặc có ít nhất hai ô của L thì L chứa vòng.Chứng minh Bắt đầu từ một ô nào đó(i1, j1) thuộc L Vì trên dòng

i1 còn ít nhất một ô khác của L, chẳng hạn (i1, j2), nên ta di chuyểntheo dòng i1 đến ô đó Vì (i2, j2) không phải ô duy nhất của L trêncột này nên ta di chuyển theo cột j2 đến ô L(i2, j2) ∈ L nằm trên cộtnày Tiếp tục từ ô (i2, j2) ta dịch chuyển theo dòng i2 đến ô khác của

L thuộc cột khác của bảng vận tải Qúa trình này không thể kéo dài

Trang 18

vô tận vì L ⊂ U gồm hữu hạn các ô, vì vậy đến một bước nào đó ta

sẽ quay lại một ô mà ta đã đi qua, tức là đã thực hiện được vòng.Khái niệm vòng liên quan chặt chẽ với tính độc lập tuyến tính củacác véc tơ cột Aij của ma trận ràng buộc A trong bài toán vận tải

Định nghĩa 1.5 Tập L ⊂ U các ô của bảng vận tải được gọi là độc lậptuyến tính(phụ thuộc tuyến tính) nếu tập các véc tơ cột (Aij, (i, j) ∈L) của ma trận A lập thành hệ véc tơ độc lập tuyến tính(phụ thuộctuyến tính)

Định lý 1.3 Tập L ⊂ U các ô của bảng vận tải là độc lập tuyến tínhkhi và chỉ khi nó không chứa vòng

Chứng minh Giả sử L độc lập tuyến tính Cần chứng minh L khôngchứa vòng Giả sử ngược lại L chứa vòng và gọi V là một vòng trong nó.Điền vào các ô trong vòng V các số +θ, −θ một cách xen kẽ nhau(tức

là sao cho không có hai ô cạnh nhau nào của V lại được điền cùngmột số giống nhau) và điền 0 vào tất cả các ô còn lại Khi θ = 1 thìtổng các số đã điền trong mỗi hàng và mỗi cột của bảng vận tải đềubằng 0 Điều đó có nghĩa là nếu ta đem các cột của ma trận A tươngứng với các ô được điền +θ trong V nhân với 1 và các ô của A tươngứng với các ô được điền −θ trong V nhân với -1, các cột còn lại nhânvới 0 rồi cộng tất cả lại ta sẽ thu được véc tơ không Từ đó suy ra cácvéc tơ cột Aij của A ứng với (i, j) ∈ L lập thành một hệ véc tơ phụthuộc tuyến tính, trái với giả L thiết độc lập tuyến tính

Ngược lại, giả sử L không chứa vòng, cần chứng minh L độc lập tuyến

Trang 19

K phải là vòng Vì K ⊂ L nên suy ra L chứa vòng, trái với giả thiết.Vậy L độc lập tuyến tính Định lý được chứng minh.

Ký hiệu G(X) là tập các ô chọn trong bảng vận tải tương ứng vớiphương án X: G(X) = (i, j) : xij > 0

Hệ quả 1.1 Phương án X = (xij) của bài toán vận tải là phương án

cơ sở chấp nhận được khi và chỉ khi tập các ô chọn G(X) tương ứngvới nó không chứa vòng

Chứng minh Ta đã biết rằng phương án X = (xij)của bài toán làphương án cơ sở chấp nhận được khi và chỉ khi hệ các véc tơ cột của

Trang 20

ma trận ràng buộc A ứng với các thành phần khác rỗng của nó lậpthành hệ độc lập tuyến tính Theo Định lý 1.2, điều đó tương đươngvới G(x) không chứa vòng.

Do có hệ quả trên mà người ta còn hay gọi phương án cơ sở chấp nhậnđược của bài toán vận tải là phương án không chứa vòng

Vì rankA = m+n−1 nên phương án cơ sở chấp nhận được là phương

án không suy biến nếu số ô chọn là m + n − 1 Trong trường hợp suybiến, ta có thể bổ sung một số ô loại sao cho phương án cơ sở chấpnhận đượccó m + n − 1 ô chọn Các ô loại được bổ sung này được gọi

là các "ô chọn 0" Ta thấy điều này tương ứng với các định lý nêutrong bài toán quy hoạch tuyến tính: Phương án cơ sở chấp nhận được

là không suy biến nếu số véc tơ cột của A tương ứng với các thànhphần dương của nó ( Khi đó các véc tơ cột này lập thành hệ độc lậptuyến tính) đúng bằng rankA Do đó ứng với mỗi phương án cơ sởchấp nhận được có duy nhất một cơ sở Trường hợp số véc tơ đó nhỏhơn rankA thì phương án cơ sở chấp nhận được đó gọi là suy biến và

ta có thể bổ xung một số cột của A vào hệ véc tơ đó để được một hệđúng bằng rankA các véc tơ cột độc lập tuyến tính.(Tương ứng vớimỗi phương án cơ sở chấp nhận được có nhiều hơn một cơ sở)

Hệ quả 1.2 Giả sử có bảng vận tải m hàng, n cột và L là một tậpgồm m + n − 1 ô của bản không chứa vòng Giả sử ô (i, j) của bảngkhông thuộc L Nếu ta bổ xung ô (i, j) vào L để được L1 thì L1 chứamột vòng duy nhất V Cuối cùng, nếu loại khỏi L1 một ô tùy ý củavòng V thì được L2 thì L2 lại gồm m + n − 1 ô của bảng không chứavòng

Trang 21

1.3 Cách phá vỡ vòng và xây dựng vòng

Cho X là một phương án của bài toán vận tải Lập bảng vận tải tươngứng với X đó Nếu tập các ô chọn G(X) không chứa vòng thì X làphương án cơ sở chấp nhận được Nếu G(X) chứa vòng thì ta phải tìmcách phá vỡ vòng trong nó tức là tìm cách xây dựng từ phương án Xphương án không chứa vòng, nói cách khác xây dựng phương án cơ sởchấp nhận được

Định lý 1.4 Giả sử X là phương án của bài toán vận tải và G(X)chứa vòng Khi đó, từ phương án X ta luôn có thể chuyển sang mộtphương án mới X không tồi hơn X ( tức là f (X) ≤ f (X) với tập các

ô chọn G(X) không chứa vòng

Chứng minh Giả sử G(X) chứa vòng V Đánh dấu các ô trong V bởicác dấu + và - sao cho không có hai ô cạnh nhau nào của V lại đượcđánh dấu cùng một dấu Gọi V+ là tập các ô trong V được đánh dấu

- Không giảm tổng quát có thể coi X

(i,j)∈V +

(ci,j) ≤ X

(i,j)∈V −

(ci,j)Xây dựng véc tơ X = (xij) theo công thức

trong đó θ = min{(xij), (i, j) ∈ V−}

Rõ ràng xij ≥ 0, ∀(i, j), ngoài ra do V là vòng nên ta có

Trang 22

Định lý 1.5 Giả sử m, n ≥ 2 Khi đó tập L gồm m + n ô bất kỳ củabảng vận tải luôn chứa vòng.

Chứng minh Vì rank A = m + n − 1 nên lập L gồm m + n ô của bảngvận tải thì phụ thuộc tuyến tính do đó theo Định lý 1.3 Lchứa vòng.Tuy nhiên ta có thể chứng minh định lý 1.5 bằng phương pháp xâydựng để từ đó suy ra thủ tục xây dựng vòng từ tập gồm m + n ô củabảng vận tải

Khi m = n = 2 thì rõ ràng m + n = 4 ô của nó lập thành vòng Khi

m > 2, n > 2 ta chứng minh định lý bằng phương pháp quy nạp theotổng số dòng và cột k = m+n Giả sử định lý đúng với k = m+n−1,

ta cần chứng minh nó đúng với k = m + n Có hai trường hợp:

Trang 23

Trường hợp 1: trong số m + n ô của L có một ô nào đó nằm một mìnhtrong một dòng hay một cột Khi đó, loại bỏ dòng hay cột chứa ô đó,trong phần còn lại có m + n − 1 ô của L Theo giả thiết quy nạp Lchứa vòng Định lý được chứng minh.

Trường hợp 2: trong mỗi dòng và cột của bảng không có ô nào của

L hoặc chứa ít nhất 2 ô của L thì theo Định lý 1.2 tập L chứa vòng.Định lý được chứng minh

Từ định lý 1.5 ta có thủ tục xây dựng vòng từ tập L gồm m + n ô củabảng vận tải như sau:

1)Xóa bỏ khỏi bảng vận tải tất cả các dòng và các cột chứa không quámột ô của L Việc này được lặp lại cho tới khi được bảng vận tải màmỗi dòng và cột của nó chứa ít nhất 2 ô của L

2) Từ bảng thu được, vòng có thể được xây dựng theo thủ tục mô tảtrong Định lý 1.2

1.4 Tìm phương án cơ sở xuất phát

Đối với bài toán quy hoạch tuyến tính tổng quát, việc tìm phương án

cơ sở xuất phát đòi hỏi phỉa giải một bài toán quy hoạch tuyến tínhphụ ( pha thứ nhất trong phương án hai pha) Công việc này dòi hỏimột khối lượng tính toán không nhỏ Tuy nhiên, do đặc thù riêng củamình, đối với bài toán vận tải hiện nay có khá nhiều phương án rấthiệu quả để tìm một phương án cơ sở chấp nhận được cho nó Trongmục này ta giới thiệu một số phương pháp phổ biến nhất

Trang 24

Như vậy,sau mỗi lần phân phối ta lại xóa đi được một dòng (hoặc mộtcột) của bảng vận tải nên sau đúng m + n − 1 lần phân phối thủ tụctrên phải kết thúc Do đó phương án xây dựng theo phương pháp góctây bắc sẽ không có quá m + n − 1 thành phần khác không.

Trang 25

1.4.2 Phương pháp cực tiểu cước phí

Theo phương pháp này ta ưu tiên phân phối nhiều nhất vào ô cócước phí nhỏ nhất trên toàn bảng Giả sử trong ma trận cước phí

C = (cij)m×n có crs là nhỏ nhất trong các cij Khi đó ta phân phối tối

Trong trường hợp (*)điểm Ar đã phát hết hàng nên có thể xóa hàng

r của bảng ở điểm thu Bs chỉ còn cần bs− as đơn vị hàng

Trong trường hợp (**) điểm thu Bs đã nhận đủ hàng nên có thể xóa

đi cột s của bảng và ở điểm phát Ar chỉ còn lại as − bs đơn vị hàng.Trong bảng còn lại với số hàng và số cột ít hơn, ta lập các phân phốitrên cho tới khi hết hàng hoặc đáp ứng đủ nhu cầu của các điểm thu.Các ô chọn còn lại sẽ không chứa vòng và là phương án cơ sở chấpnhận được Nếu chưa đủ m + n − 1 ô thì ta bổ sung thêm một số "ôchọn 0" cho đủ m + n − 1 ô không tạo thành vòng

1.5 Các thuật toán giải bài toán vận tải

1.5.1 Thuật toán quy 0 cước phí các ô chọn

Ta có nhận xét sau: Nếu cộng vào hàng thứ i của ma trận cước phí

C = (cij)m×n số ri tùy ý (i = 1, m) và cộng vào cột j của nó số sj

tùy ý (j = 1, n) thì ta có bài toán vận tải mới với ma trận cước phí

Trang 26

C = (Cij)m×n (trong đó cij = cij + ri + sj tương đương với bài toánban đầu(tức là phương án tối ưu của bài toán này cũng là phương ántối ưu của bài toán kia và ngược lại) Thật vậy, giá trị hàm mục tiêutrong bài toán mới là:

Bước 2: Kiểm tra trên chuẩn tối ưu:

1- Nếu sau khi quy 0 cước phí các ô chọn mà các ô loại đều có cước

Trang 27

phí lớn hơn 0 thì phương án đang xét là phương án tối ưu vì khi đóbất kỳ ô loại nào vào thay cho bất kỳ ô chọn nào cước phí cũng tănglên và phương án mới là tồi hơn.

2- Nếu sau khi quy 0 cước phí các ô chọn mà có ít nhất một ô loại cócước phí âm, thì phương án đang xét không phải là phương án tối ưu(

vì khi đó nếu thay ô loại có cước phí âm vào ô chọn đã quy 0 cước phíthì cước phí giảm đi) Chuyển sang bước 3

Bước 3: Xây dựng phương án mới tốt hơn:

1- Tìm ô đưa vào: Giả sử ô (i∗,j∗) có cước phí âm nhỏ nhất thì chọn

V+: các ô được đánh dấu +

V−: các ô được đánh dấu

-4- Tìm ô đưa ra và lượng điều chỉnh:Giả sử min

(i,j)∈V −xij = xi0 j 0 khi đó(i0j0) là ô đưa ra và (i0j0) là lượng điều chỉnh, nói cách khác tìm xemtrong các ô đánh dấu - ô nào được phân hàng ít nhất thì ô đó là ô đưa

ra còn lượng hàng ở ô này là lượng điều chỉnh

5- Phương án mới X = (xij)m×n được tính như sau:

Trang 29

1 m), vj(j = 1 n) sao cho 4ij = ui + vj − cij = 0; ∀(i, j) ∈ G(X),tức là có ui + vj − cij = 0; ∀xij >0 thì (ui, vj) đã thỏa mãn định

lý yếu về độ lệch bù Do đó nếu nó là phương án của bài toán đốingẫu thì X= (xij)m×n là phương án tối ưu của bài toán vận tải banđầu.Mà điều kiện để (ui, vj) là phương án của bài toán đối ngẫu là

ui + vj ≤ cij∀(i, j) ở các ô chọn đã thỏa mãn.Vì vậy nếu ở các ô loại

ấy cũng được thỏa mãn thì X=(xij)m×n là phương án tối ưu của bàitoán vận tải

Vậy ta có điều kiện để phương án X = (xij)m×n là phương án tối ưucủa bài toán vận tải dạng tổng quát là 4ij = ui+ vj − cij ≤ 0∀(i, j).Các số ui (i=1 m), vj (j=1 n) nói tên gọi là các thế vị, các ui gọi làcác thế vị hàng và vj gọi là các thế vị cột

Từ những phân tích trên, ta có thuật toán thế vị của bài toán vận tảigồm các bước sau:

Bước khởi tạo: Tìm phương án cơ sở xuất phát X= (xij)m×n bằng mộttrong các phương pháp trên Tập các ô chọn G(X) gồm m + n − 1 ô

ẩn này (Ta thấy cách xác định các thế vị ui, vj tương tự như cáchxác định ri, sj trong phương pháp quy 0 cước phí các ô chọn)

Trang 30

2 Tính ước lượng θij = ui + vj − cij, ∀(i, j) (Ta ghi các ước lượngtính được vào góc dưới bên trái của ô tương ứng trong bảng vậntải).

3 Kiểm tra tiêu chuẩn tối ưu: nếu θij ≤ 0∀(i, j) thì X = (xij)m×n

là phương án tối ưu

Nếu ∃4ij ≤ 0, ∀(i, j) thì chuyển sang Bước 2

Bước 2

1 Chọn ô đưa vào (i∗, j∗) thỏa mãn 4i∗j∗ = max4ij > 0 Khi đótập G(X) = ∪(i∗, j∗) chứa vòng và rõ ràng vòng này là duy nhấttrong nó Ký hiệu vòng đó là V

2 Đánh dấu các ô trong vòng V bởi các dấu +, - bắt đầu từ ô(i∗, j∗) đánh dấu cộng sao cho hai ô cạnh nhau của vòng khôngđược đánh bởi cùng một dấu Gọi V+ là tập tất cả các ô của vòng

V được đánh dấu +, V− là tập tất cả các ô của V được đánh dấu-

Trang 31

khi đó tập các ô chọn X là G(X = G(X) (i0, j0) ∪ (i∗, j∗) khôngchưa vòng Thay X bởi X và lặp lại bước 1.

Nếu bài toán vận tải không suy biến thì sau mỗi bước ta lặpđến một phương án cơ sở mới chấp nhận được không tồi hơn cácphương án cơ sở cơ sở đã đi qua Vì số phương án cơ sở chấpnhận được là hữu hạn nên sau hữu hạn bước lặp ta sẽ nhận đượcphương án tối ưu

Nhận xét: Trong mỗi bước lặp của thuật toán thế vị khi biến đổiphương án ta không phỉa làm một phép chia nào Ngoài ra nếu các số

ai(i = 1, m), bj(j = 1, n) là các số nguyên thì phương án xuấ phát tìmtheo một trong các phương pháp nêu trên (phương pháp góc tây bắc,phương pháp cực tiểu cước phí) có các thành phàn đều là số nguyên,

do đó bài toán vận tải có phương án tối ưu với các thành phần đều làcác số nguyên

Trang 32

GIỚI THIỆU, TÌM HIỂU VỀ

Trong suốt thời gian ghi, macro đã được lưu lại với ten xác định trongmodule, module được tạo ra trong quá trình ghi và một phần củaWorkbook Macro được ghi lại có thể được lưu trong This Workbook(Workbook hiện hành), New Workbook (Workbook mới) hoặc trongPersonal Marco Workbook (những marco sở hữu riêng) Những lệnh(code) được lưu trong Personal.xls, những marco sở hữu riêng đềuđược sử dụng khi mở Excel ra Các macro trong các Workbook khácnhau có thể sử dụng bất cứ lúc nào khi các Workbook đang mở (kể

Trang 33

cả sử dụng chúng từ Workbook khác).

Điều kiện để có thể tiến hành ghi Macro:

1 Bảng tính Excel hiện hành ( Activate Excel)

2 Sử dụng Workbook mới

Hình 2.1: Cửa sổ Record Macro

2.2 Cách thực hiện một Macro đơn giản

Dưới đây là các phương thức để thực hiện macro, ta có thê thực hiệnmacro từ các đối tượng sau:

- Đối tượng đồ họa trong Worksheet hoặc biểu đồ

- Nút (button) trong thanh công cụ( Toolbar)

- Dòng lệnh (command) trong menu của Excel

Trang 34

2.2.1 Thực hiện macro từ một đối tượng đồ họa trong

3 Chọn đối ượng đồ họa như hình oval và vẽ hình oval đó

4 Gõ chữ vào hình oval đó bằng cách nhấn chuột vào rồi chọn AddText

5 Gõ nội dung ví dụ rồi bấm ra ngoài để thoát

6 Kích chuột phải vào hình oval đó , chọn Assign Macro

7 Trong bảng Assign Macro, chọn macro có tên ví dụ -Ref

8 Chọn OK

2.2.2 Chạy macro từ nút lệnh trên thanh công cụ

Ta có thể chạy macro từ nút lệnh (button) trong các thanh công cụ

tự tạo (custom toolbar)

Ví dụ như ta có thể ấn định macro ví dụ- abs trong nút mặt cười(smile face) như sau:

Trang 35

Hình 2.2: Gán Macro vào hình oval

1 Di chuyển chuột đến một điểm nào đó trong thanh Toolbar

2 Kích chuột phải, trong thực đơn tắt chọn Customize

3 Trong bảng Customize, chọn tab Toolbar

4 Chọn New

5 Sau đó chọn bảng New Toolbar xuất hiện và gõ tên vào (Macro1)rồi OK

6 Trong bảng Customize, chọn tab Commands

7 Trong hộp Categories, chọn AutoShapes

8 Trong Commands, cuộn xuống cho đến khi chọn được hình ưngý

9 Tại hình đã chọn, giữ trái và kéo chuột vào trong thanh công cụMacro1

Trang 36

10 Kích chuột phải vào biểu tượng vừa chọn, thực đơn tắt sẽ hiện

ra Ta có thể sửa hay xóa hình đó và thay bằng các hình khác

11 Chọn Assign Macro trong thực đơn tắt, chọn Macro Address- abs

và chọn OK

12 Đóng bảng Customize

Hình 2.3: Tạo thanh công cụ mới

2.2.3 Chạy macro từ lệnh trong menu của Excel

Từ menu của Excel, ta có thể thêm các menu mới mà khi lựachọn chúng thì Macro sẽ chạy

Ví dụ: tạo menu mới có tên là Work Address có thể chứa menucon Macro2 trên thanh tiêu chuẩn như sau:

Ngày đăng: 27/06/2017, 08:58

HÌNH ẢNH LIÊN QUAN

1. Bảng tính Excel hiện hành ( Activate Excel). - Ứng dụng Excel giải từng bước bài toán vận tải
1. Bảng tính Excel hiện hành ( Activate Excel) (Trang 33)
Hình 2.2: Gán Macro vào hình oval - Ứng dụng Excel giải từng bước bài toán vận tải
Hình 2.2 Gán Macro vào hình oval (Trang 35)
Hình 2.3: Tạo thanh công cụ mới - Ứng dụng Excel giải từng bước bài toán vận tải
Hình 2.3 Tạo thanh công cụ mới (Trang 36)
Hình 2.4: Gán hình vào nút lệnh mới - Ứng dụng Excel giải từng bước bài toán vận tải
Hình 2.4 Gán hình vào nút lệnh mới (Trang 37)
Hình 2.5: Các kiểu dữ liệu - Ứng dụng Excel giải từng bước bài toán vận tải
Hình 2.5 Các kiểu dữ liệu (Trang 43)
Hình 2.7: Tạo Module và Sub trong Worbook - Ứng dụng Excel giải từng bước bài toán vận tải
Hình 2.7 Tạo Module và Sub trong Worbook (Trang 46)
Hình 2.10: Sản phẩm tạo ra khi dùng vòng Do... Loop - Ứng dụng Excel giải từng bước bài toán vận tải
Hình 2.10 Sản phẩm tạo ra khi dùng vòng Do... Loop (Trang 54)
Hình 2.11: Sản phẩm tạo ra khi dùng vòng lặp Do While...Loop - Ứng dụng Excel giải từng bước bài toán vận tải
Hình 2.11 Sản phẩm tạo ra khi dùng vòng lặp Do While...Loop (Trang 55)
Hình 2.16: Minh họa vòng For..each - Ứng dụng Excel giải từng bước bài toán vận tải
Hình 2.16 Minh họa vòng For..each (Trang 60)
Hình 2.18: Sản phẩm tạo ra khi dùng vòng lặp lồng - Ứng dụng Excel giải từng bước bài toán vận tải
Hình 2.18 Sản phẩm tạo ra khi dùng vòng lặp lồng (Trang 62)
Hình 3.1: Khai báo địa chỉ đầu vào- Điểm phát - Ứng dụng Excel giải từng bước bài toán vận tải
Hình 3.1 Khai báo địa chỉ đầu vào- Điểm phát (Trang 67)
Hình 3.2: Khai báo địa chỉ đầu vào- Điểm thu - Ứng dụng Excel giải từng bước bài toán vận tải
Hình 3.2 Khai báo địa chỉ đầu vào- Điểm thu (Trang 67)
Hình 3.3: Khai báo ma trận cước phí - Ứng dụng Excel giải từng bước bài toán vận tải
Hình 3.3 Khai báo ma trận cước phí (Trang 68)
Hình 3.4: Hiển thị phương án xuất phát - Ứng dụng Excel giải từng bước bài toán vận tải
Hình 3.4 Hiển thị phương án xuất phát (Trang 68)
Hình 3.5: Mô tả từng bước tìm phương án tốt hơn trong VBA - Ứng dụng Excel giải từng bước bài toán vận tải
Hình 3.5 Mô tả từng bước tìm phương án tốt hơn trong VBA (Trang 71)

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