Bài toán đường đi ngắn nhất Tìm đường đi ngắn nhất là một trong những bài toán quy hoạch tuyến tính phổ biến trong hầu hết các vấn để về mạng, có thể mô tả như sau: Cho một mạng gồm tập
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
BÀI TIỂU LUẬN MÔN HỌC
Khoa học dịch vụ
Chương 2: Review of Linear Programming
Mark S Daskin Network and Discrete Location Models, Algorithms, and
Applications (2nd edition) John Wiley _ Sons
Danh sách sinh viên thực hiện:
HÀ NỘI – 2018
Trang 2Mục lục
II Thuật toán tối ưu lưu lượng Out-of-kilter 20
Trang 3Phân công công việc của nhóm sinh viên
Số TT Họ tên sinh viên Công việc đã thực hiện
1 Nguyễn Tuấn Anh Biên soạn tài liệu bài toán nghiệm nguyên (2.9)
Viết Tắt Tiếng Anh Tiếng Việt Giải thích
lượng mạng PACB Phương án cơ bản Phương án cơ bản trong bước đầu
giải bài toán vận tải
Trang 4I Vấn đề đường đi ngắn nhất
I.1 Bài toán đường đi ngắn nhất
Tìm đường đi ngắn nhất là một trong những bài toán quy hoạch tuyến tính phổ biến trong hầu hết các vấn để về mạng, có thể mô tả như sau: Cho một mạng gồm tập các nút N và
các đường liên kết trực tiếp A, đi cùng với chi phí của mỗi liên kết Câu hỏi đặt ra là tìm
đường đi ngắn nhất (tổng chi phí nhỏ nhất) từ một nút s thuộc N đến một nút t thuộc N I.1.1 Mô tả bài toán
Vấn đề đường đi ngắn nhất được mô tả dưới dạng bài toán quy hoạch tuyến tính như sau
Trang 5Mục tiêu của bài toán là cực tiểu hóa tổng chi phí của những liên kết được lựa chọn Điều kiện thứ nhất quy định về giá trị dòng vào và dòng ra của một nút Điều kiện thứ hai đảm
bảo mỗi liên kết chỉ xuất hiện một lần trong quãng đường từ s đến t
Bài toán đối ngẫu được phát biểu như sau:
Cực đại hóa:
Điều kiện:
Trong đó, V j là chi phí tối thiểu để đến được nút j Các điều kiện đảm bảo các hiệu V j với
Vi không vượt quá chi phí trực tiếp từ i đến j và V i có thể tính được với mọi i thuộc N
Về mặt kỹ thuật, vấn đề này nếu theo công thức trên không phải là bài toán quy hoạch
tuyến tính bởi các biến quyết định X (i, j) là các số nguyên (nhận giá trị 0 hoặc 1) và không phải biến thực Các biến này không thể nhận các giá trị phân số như những bài toán quy hoạch tuyến tính khác Tuy nhiên, ma trận ràng buộc là hoàn toàn đơn hình Thuộc tính này đảm bảo rằng nếu chúng ta giải quyết vấn đề này dưới dạng quy hoạch tuyến tính, kết quả sẽ được các biến quyết định nguyên, vì vậy ta có thể định nghĩa lại biến quyết định
thành một biến không âm ( X (i, j) >= 0) và giải bài toán này như quy hoạch tuyến tính
Nếu một số liên kết có chi phí âm, lời giải của quy hoạch nguyên hoặc quy hoạch tuyến tính đều có thể chứa những vòng lặp âm (một chuỗi các liên kết tạo thành chu trình, ví dụ một chuỗi bắt đầu từ nút p, đi qua một vài nút rồi quay lại nút p với tổng chi phí âm - nghĩa là càng lặp lại nhiều lần chu trình này chi phí càng nhỏ)
Trang 6Trong giải quyết vấn đề đường đi ngắn nhất, việc sử dụng các phương pháp quy hoạch tuyến tính chuẩn cho hiệu quả kém Dưới đây giới thiệu 2 thuật toán có hiệu quả hơn nhiều với vấn đề này
I.1.2 Thuật toán Dijkstra
Thuật toán Dijkstra, mang tên của nhà khoa học máy tính người Hà LanEdsger Dijkstra,
là một thuật toán giải quyết bài toán đường đi ngắn nhất nguồn đơn trong một đồ thị có hướng không có cạnh mang trọng số âm Thuật toán này được sử dụng phổ biến trong các
kỹ thuật định tuyến
Lời giải của bài toán đường đi ngắn nhất chứa 2 thông tin: chi phí đường ngắn nhất từ s
đến t và thứ tự các liên kết được đi qua Một nhãn của nút vì vậy sẽ có 2 phần: (1) giá trị chi phí tối thiểu đi từ s và (2) nút phía trước trong kết quả Như vậy, ta sẽ sử dụng nhãn
có dạng: [ giá trị chi phí thấp nhất đã biết, nút phía trước ]
Giá trị chi phí thấp nhất đã biết để tới được nút j được ký hiệu là V j Nút liền trước trongđường đi được ký hiệu là P j→ nhãn của mỗi nút j sẽ có dạng [V j , Pj] Những nhãn này có thể là tạm thời hoặc vĩnh viễn Ta sẽ gán nhãn vĩnh viễn nếu giá trị tốt nhất hiện tại cũng
là tốt nhất mà chúng ta có thể tìm được khi xét xong tất cả các liên kết liên quan Những nút có nhãn vĩnh viễn được gọi là "đã được quét ", những nút nhãn tạm thời sẽ ở nhóm
"chưa được quét" Dưới đây là mô tả thuật toán để tìm đường từ nút s đến tất cả các nút khác Nhìn chung, chi phí tính toán khi tìm đường tới tất cả các nút không cao hơn quá nhiều chi phí tìm đường đến một nút Thêm vào đó, đường đến các nút khác lại liên quan đến đường đến nút t, và công việc này sẽ lại phải thực hiện lại khi chúng ta muốn tìm
đường từ s đến một nút u khác
Bước 1: Khởi tạo
(a) Gán nhãn cho nút s [ 0, _ ] (Vs = 0 và không có nút phía trước s)
(b) Gán nhãn tất cả các nút còn lại [ ∞, _ ]
(c) Đặt nút s vào danh sách "đã duyệt "
Bước 2: Cập nhật nhãn
(a) Gọi nút duyệt mới nhất, nút m
(b) Với tất cả liên kết (m, j) mà nút j chưa được duyệt, tính:
(1) T = V + c
Trang 7(2) Nếu T j< V j , đặt lại nhãn nút j với [ T j , m ] biểu thị chi phí để đến nút j là T jvànút m liền trước
Bước 3: Duyệt nút
(a) Tìm nút có giá trị nhãn V j thấp nhất mà chưa được duyệt
(b) Duyệt nút j
Bước 4: Kiểm tra kết thúc
(a) Tất cả các nút đã được duyệt?
(1) Đúng dừng
(2) Sai quay lại bước 2
Hình 2.21 Ví dụ về mạng Hình 2.21 trên là một ví dụ Giả sử ta cần tìm đường đi ngắn nhất từ nút A đến các nút
khác Ta bắt đầu gán nhãn cho nút A[ 0, _ ] và tất cả các nút khác [ ∞, _ ] Nút A đã được duyệt (tô xám) được thể hiện trong Hình 2.22
Hình 2.22 Ví dụ vấn đề với các nhãn nút khởi đầu và nút A đã được kiểm tra
Trang 8Ta cập nhật các nhãn của các nút có thể đi từ A (là nút gần nhất được duyệt), kết quả của
việc cập nhật này được thể hiện trong Hình 2.23
Hình 2.23 Mạng các nút được đánh nhãn từ nút A
Hình 2.24 Mạng sau khi nút F được đánh nhãn
Tiếp theo, vì F là nút có giá trị V thấp nhất, ta đã có thể gán nhãn vĩnh viễn cho F và tiếp tục mở rộng từ đây Kết quả được biểu thị trong hình 2.24, các đường đi ngắn nhất được
tô đậm Nút F đã được quét và tiến hành cập nhật một số nhãn của nút liền kề Nhãn trên nút D được thay đổi từ [ 15, A ] sang [ 12, F ] chỉ ra đường ngắn nhất đã biết (chi phí 12)
để đi đến D là đi qua F
Trang 9Hình 2.25 Mạng sau khi nút D được đánh nhãn
Hình 2.26 Mạng sau khi nút B bị đánh nhãn
Trang 10Hình 2.27 Mạng sau khi nút G bị đánh nhãn
Hình 2.28 Mạng sau khi nút E bị đánh nhãn
Hình 2.29 Mạng sau khi nút C được đánh nhãn
Trang 11Hình 2.30 Mạng sau khi nút H được đánh nhãn Cuối cùng, ta thấy mạng được tạo thành từ các liên kết trong đường đi ngắn nhất từ A tới
mọi nút là một cây bao trùm (đồ thị mà trong đó tất các các nút được kết nối và chỉ có duy nhất một đường từ nút này đến nút kia)
Thuật toán Dijkstra với trọng số âm
Ta đã biết Dijkstra chỉ đảm bảo đúng đắn trong trường hợp các trọng số chi phí không
âm Dưới đây ta xét 2 ví dụ với trọng số chi phí âm, một trong số đó Dijkstra hoạt động
vẫn cho kết quả chính xác, trường hợp còn lại cho kết quả không chính xác
Xét đồ thị như hình sau:
Giả sử ta cần tìm đường đi ngắn nhất từ nút (0) Thực hiện các bước theo thuật toán Dijkstra, ta thu được trạng thái các nhãn như hình dưới:
Trang 12Sau khi duyệt tất cả các nút, thuật toán Dijkstra vẫn cho kết quả đúng: chi phí thấp nhất
từ nút (0) đến nút (2) là 1 và đường đi là (0) - (1) - (2)
Ta xét một đồ thị khác dưới đây Giả sử ta cần tìm đường đi ngắn nhất từ nút (0)
Thực hiện các bước theo thuật toán Dijkstra thu được trạng thái cuối như sau:
Trang 13Ta thấy, sau khi nút số (2) được coi là đã duyệt, nhãn nút số (2) được gán vĩnh viễn và không được cập nhật trong giai đoạn duyệt nút số (3), nên thu được kết quả sai
Với thuật toán Dijkstra, một khi nút được coi là đã duyệt nó sẽ không được xét lại, đây là
lý do thuật toán bị sai với trọng số âm, tuy nhiên lại có hiệu quả với trọng số không âm khi có thể thực hiện nhanh và không xét lại trên tư tưởng rất thực tế "đi thêm một liên kết
sẽ mất thêm chi phí"
Dưới đây giới thiệu thuật toán Bellman - Ford, có thể được sử dụng trong các bài toán có xuất hiện trọng số chi phí âm
I.1.3 Thuật toán Bellman - Ford
Thuật toán Bellman - Ford được đặt tên theo Richard Bellman and Lester Ford, là một thuật toán tìm đường đi ngắn nhất từ một đỉnh tới các đỉnh khác trong một đồ thị có trọng
số Thuật toán này chậm hơn Dijkstra, tuy nhiên linh hoạt hơn nhiều khi có thể xử lý đồ thị với trọng số âm
Các bước của thuật toán này được mô tả như sau:
Trang 14Bước 1: Khởi tạo
(a) Với mỗi đỉnh j thuộc đồ thị, gán V j = ∞; Pj = null
(b) Gán Vs = 0
Bước 2: Kết nạp cạnh (lặp)
(a) Với i từ 1 đến (tổng số đỉnh - 1) lặp:
(1) Với mỗi liên kết ( u, v):
Nếu V u+ c(u,v) < Vv :
Gán Vv = Vu + c(u,v)
Gán Pv = u
Bước 3: Kiểm tra chu trình âm
(a) Với mỗi liên kết ( u, v):
Nếu V u + c(u, v) < Vv : → đồ thị chứa chu trình âm
Thuật toán Bellman Ford có các bước lặp để xét lại các đỉnh mà ở thuật toán Dijkstra bỏ qua, tuy chậm hơn thuật toán Dijkstra (đặc biệt trong trường hợp các trọng số đều không
âm và các nút theo đường thẳng) nhưng lại đảm bảo được tính đúng đắn với các trọng số
âm
I.2 Vấn đề đường đi ngắn nhất trong Excel
Trong phần này, chúng tôi sẽ phác thảo cách xây dựng bài toán tìm đường đi ngắn nhất
sử dụng công cụ bảng tính Excel Đồ thị trong hình 2.21 phía dưới sẽ được lấy làm ví dụ cho bài toán
Hình 2.21 Ví dụ mạng đối với vấn đề đường đi ngắn nhất
Trang 15Các thiết lập cơ bản được thể hiện trong Hình 2.31 Dải ô màu xanh dương thể hiện biểu diễn của đồ thị dưới dạng ma trận Các hàng của ma trận tương ứng với nút khởi đầu, các cột tương ứng với nút kết thúc Giá trị mỗi điểm của ma trận là giá trị trọng số của vòng cung tương ứng trên đồ thị - hay chính là chi phí (ArcCost) của mỗi cung Hình 2.21 chỉ cho thấy các liên kết vô hướng, còn ma trận trong hình 2.7.1 biểu diễn mỗi liên kết haichiều dưới dạng hai vòng cung một chiều (VD như ô C7 và ô D4) Ô C7 đại diện cho cung (D;A) trong khi ô D4 đại diện cho cung (A;D) chỉ số chi phí của cung (A;D) là giống hệt với cung (D;A)
Dải ô màu xanh lá thể hiện ma trận đường đi kết quả tính được Tương tự các hàng là nút khởi đầu, các cột tương ứng với nút kết thúc Mỗi ô trong ma trận thể hiện liên kết giữa các cung với nhau - là một biến quyết định sẽ nhận giá trị 1 nếu cung đó được sử dụng trong đường đi ngắn nhất từ nút đầu tới nút kết thúc và 0 nếu không
Hình 2.7.1 Tổng quan thiết lập bài toán Các ràng buộc (2.69) được thể hiện trong dải ô L16:N23 màu vàng của bảng tính Các ô N16:N23 thể hiện các nút bắt đầu và kết thúc để xác định các giá trị bên phải thích hợp cho các ràng buộc (giá trị 1 tương ứng với đầu vào và -1 tương ứng với đầu ra) Trong ví
dụ này ta sẽ tìm đường đi ngắn nhất từ nút A tới nút H
Trang 16Hàm mục tiêu được đưa ra trong ô M4 (màu da cam) được viết bởi công thức SUMPRODUCT(ArcCost, Usage) Trong đó ArcCost đề cập tới dải ô C4:J11 và Usage được thể hiện trong dải ô C16:J23 Ô này thể hiện tổng chi phí của tất cả các cung được
sử dụng trên đường đi ngắn nhất từ nút bắt đầu tới nút kết thúc (Total Distance)
Cách thực hiện:
Sau khi thiết lập xong bài toán (biểu diễn lại đồ thị dưới dạng ma trận, tạo ma trận kết quả, thiết lập ràng buộc, ) ta sử dụng công cụ Solve của Excel để thực hiện tính toán đường đi ngắn nhất
Hình 2.7.2: Giao diện hộp thoại Solve
● Tại trường Set Objective, chọn ô M4 thể hiện giá trị tổng chi phí đường đi ngắn nhất
Trang 17● Chọn phương thức Solve là Simplex LP, sau đó chọn Solve
Hình 2.7.3 Các bước chọn các tham số của Solver
Trang 18=> Thu được kết quả như hình dưới Theo dự kiến chi phí tối ưu của đường đi ngắn nhất
từ nút A đến nút H là 34
Hình 2.7.4 Công cụ tìm ra lời giải
Kết quả đường đi chi tiết được thể hiện trong Hình 2.7.5 Theo đó, chi phí tối ưu của đường đi ngắn nhất từ A tới H là 34 Đường đi ngắn nhất tìm được là là A => F => D =>
E => H
Trang 19Hình 2.7.5 Kết quả tối ưu sau khi sử dụng Solver
II Thuật toán tối ưu lưu lượng Out-of-kilter
II.1 Giới thiệu
Lớp cuối cùng của những vấn đề lập trình tuyến tính đặc biệt mà chúng tôi thảo luận là các vấn đề về lưu lượng mạng chi phí tối thiểu tổng quát hơn Chúng tôi thảo luận những vấn đề này trong ngữ cảnh của thuật toán lưu lượng out-of-kilter Trước khi bàn luận về thuật toán này, chúng tôi cần định nghĩa lưu lượng lưu thông Một luồng lưu thông trongmột mạng là một luồng trong đó lưu lượng vào mỗi nút chính xác bằng lưu lượng ra khỏi mỗi nút Thuật toán lưu lượng out-of-kilter tìm thấy luồng lưu thông chi phí tối thiểuthông qua mạng đáp ứng các giới hạn dưới và trên có thể áp dụng cho mỗi luồng liên kết (Fulkerson, 1961)
Nhiều vấn đề về lưu lượng mạng bao gồm vấn đề vận chuyển và vấn đề đường đi ngắn nhất có thể được cấu trúc như các vấn đề lưu lượng mạng chi phí tối thiểu và có thể được giải quyết bằng cách sử dụng thuật toán lưu lượng out-of-kilter (Glover, Klingman và Phillips (1992) đưa ra một đánh giá nổi bật về các vấn đề có thể được cấu trúc như các vấn đề lưu lượng mạng tuyến tính .) Thuật toán lưu lượng out-of-kilter là một trong nhiều thuật toán lưu lượng mạng Người đọc quan tâm đến các thuật toán như vậy nêntham khảo bất kỳ một trong số các văn bản bao gồm: Ahuja, Magnanti và Orlin (1993),
Trang 20Bertsekas (1991), Jensen và Barnes (1980), Kennington và Helgason (1980), Minieka(1978) , và Phillips và Garcia-Diaz (1981) Chúng tôi đã chọn để thảo luận về thuật toán lưu lượng out-of-kilter ở đây vì mối quan hệ mật thiết giữa thuật toán và lý thuyết nhị nguyên trong lập trình tuyến tính Việc triển khai thuật toán lưu lượngout-of-kilter -MENU-OKF — được bao gồm trong phần mềm đi kèm với văn bản này
II.2 Phát biểu bài toán
Như trước đây, chúng ta sẽ định nghĩa N là một tập hợp các nút và A là một tập hợp các liên kết trực tiếp Vấn đề lưu lượng out-of-kilter có thể được hình thành như một vấn đề lập trình tuyến tính bằng cách sử dụng ký pháp sau:
Đầu vào
● = đơn vị chi phí của liên kết từ i đến j
● = lưu lượng yêu cầu tối thiểu trên liên kết (i, j) [ví dụ cận dưới của lưu lượng trên liên kết (i, j)]
● = lưu lượng cho phép tối đa trên liên kết (i, j) [ví dụ cận trên của lưu lượng trên liên kết (i, j)]
Các biến quyến định
= lưu lượng của liên kết (i, j)
Với những định nghĩa này, cơ sở có thể được hình thành như sau:
II.2.1 Bài toán cơ sở
Trang 21hạn trên của lưu lượng của mỗi liên kết, trong khi quan hệ (2.77) là ràng buộc cận dưới
của lưu lượng trên mỗi liên kết II.2.2 Bài toán đối ngẫu CỰC ĐẠI ● (2.79) ● không bị hạn chế với (2.80) ● (2.81) ● (2.82) Trong đó ● = biến đối ngẫu kết hợp với ràng buộc (2.75) ● = biến đối ngẫu kết hợp với ràng buộc (2.76) ● = biến đối ngẫu kết hợp với ràng buộc (2.77) Một lần nữa, sự quan tâm của chúng tôi đối với vấn đề này xuất phát từ thực tế là nhiều
vấn đề về mạng có thể dễ dàng được nêu ra về các vấn đề lưu lượng out-of-kilter Ví dụ,
để mô hình hóa một vấn đề giao thông vận tải thành một vấn đề lưu lượng out-of-kilter,
chúng tôi thêm một nút siêu nguồn Chúng tôi kết nối nút siêu nguồn với mỗi nút cung
cấp với giới hạn dưới là 0, chi phí là 0 và giới hạn trên bằng với nguồn cung cấp của nút
cung cấp Tương tự, chúng tôi kết nối mỗi nút nhu cầu với nút siêu chìm Giới hạn dưới trên một liên kết giữa một nút nhu cầu và nút siêu chìm bằng với nhu cầu tại nút đó; giới
hạn trên là vô hạn; và chi phí là 0 Chúng tôi cũng kết nối mọi nút cung cấp với mọi nút
nhu cầu Các liên kết này có giới hạn dưới 0, giới hạn trên , và chi phí bằng chi phí
vận chuyển đơn vị giữa nút cung cấp và nút nhu cầu được kết nối Cuối cùng, chúng ta
thêm một liên kết từ siêu chìm tới siêu nguồn với giới hạn dưới là 0, giới hạn trên và chi phí là 0 Hình 2.34 minh họa một mạng cho vấn đề giao thông được giải quyết trong
Phần 2.6 ở trên (Giới hạn và chi phí thấp hơn và trên chỉ được hiển thị cho các liên kết
đã chọn) Nhiều vấn đề về mạng khác cũng có thể được hình thành như các vấn đề lưu
lượng out-of-kilter Vì vậy, nó rất hữu ích để biết làm thế nào để chuyển đổi một vấn đề thành định dạng này
Trang 22Bây giờ chúng tôi sẽ chuyển sang các điều kiện lỏng bổ sung cho vấn đề này Chúng là:
Trang 23II.2.3 Tìm giải pháp tối ưu
Với các luồng tối ưu, và các giá trị nút, , chúng ta có thể suy ra các giá trị tối ưu cho các biến đối ngẫu và Chúng tôi bắt đầu bằng cách lưu ý rằng trong bất kỳ giải pháp tối ưu nào thì hoặc (hoặc cả hai bằng 0) cho mỗi liên kết (i, j) Rõ ràng hơn, nếu và chúng tôi có một giải pháp mà cả và ,chúng tôi có thể giảm cả hai giá trị cho đến khi một trong số chúng bằng 0 Điều này sẽ không ảnh hưởng đến hàm mục tiêu kép khi Nó cũng không ảnh hưởng tínhkhả thi của ràng buộc kép (2.79) hoặc điều kiện lỏng bổ sung (2.83) Như vậy, chúng tôi
có thể luôn tìm thấy một giải pháp mà ít nhất một trong hai biến hoặc bằng 0
Tiếp theo, chúng tôi cho thấy rằng chúng tôi có thể suy ra các giá trị của và từkiến thức về các giá trị nút Để xem điều này hoàn thành như thế nào, chúng tôi sẽ thay thế bằng Những điều kiện (2.83) - (2.85) có nghĩa là:
● Nếu , thì [Để thấy rằng điều này phải đúng, lưu ý rằng nếu chúng ta có , chúng ta cần có để thỏa mãn (2.85) Tuy nhiên,nếu và và , chúng tôi sẽ cần
để thỏa mãn (2.83) Tuy nhiên, chúng ta chỉ đồng ý rằng và không thể
Trang 24Điều kiện (2.86)-(2.88) có thể được tóm tắt trong một sơ đồ kilter mà trong đó chúng ta phác thảo lưu lượng trên trục X và giá trị của trên trục Y Ảnh 2.35 là một
sơ đồ kilter thông thường
Bất kỳ liên kết nào có lưu lượng và các giá trị được phác thảo trên đường kilter
là "trong kilter" và thỏa mãn tất cả các điều kiện tối ưu (miễn là chúng tôi đảm bảo rằng chúng tôi luôn có luồng lưu thông) Bất kỳ liên kết nào không được phác thảo trên đường kilter thì tức là ngoài kilter và vi phạm một hoặc nhiều điều kiện tối ưu Để thuận tiện cho việc thảo luận, chúng ta thường kết hợp số kilter và trạng thái kilter với các vùng khác nhau của sơ đồ kilter Chúng được thể hiện trong Hình 2.36 và Bảng 2.2
Hình 2.35 Sơ đồ kilter thông thường
Trang 25Hình 2.36 Sơ đồ Kilter hiển thị các trạng thái kilter
Lưu ý rằng tất cả các số kilter đều dương Những con số này đo lường (trong một số ý nghĩa lỏng) mức độ mà giải pháp vi phạm các điều kiện tối ưu Ngoài ra, lưu ý rằng nếu chúng ta có thể thay đổi lưu lượng như được chỉ ra trong Bảng 2.2 trên bất kỳ liên kết nào, mà là ngoài kilter, liên kết sau đó sẽ đáp ứng các điều kiện tối ưu
Tại giải pháp tối ưu, chúng tôi lưu ý rằng là chi phí giảm đi kèm với liên kết(i, j) Nó cho biết tốc độ thay đổi của hàm mục tiêu đối với các thay đổi trong hoặc Cụ thể,nếu , thì cho biết số lượng mà hàm mục tiêu sẽ tăng nếu chúng ta tăng bằng 1 Tương tự, nếu , thì cho biết số lượng mà hàm mục tiêu sẽ giảm nếu chúng ta tăng 1 Cuối cùng, nếu , thì chỉ ra rằng hàm mục tiêu sẽ không thay đổi nếu chúng ta thực hiện các thay đổi nhỏ trong hoặc
Trạng
thái
giảm,
Số Kilter Muốn (Giảm/
Tăng lưu lượng)