Chapter 1 - Optimization Problem

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 38

Chapter 1.

Optimization problem

Seminar chuyên đề
• Lý thuyết tổ hợp gắn liền với việc
nghiên cứu sự sắp xếp của các phần
tử trong các tập hữu hạn và sự phân
bố của các phần tử vào các tập hữu
hạn.
• Mỗi cách sắp xếp hoặc phân bố như
thế được gọi là một cấu hình tổ hợp.
• Có thể nói vắn tắt: Tổ hợp là lý thuyết
về các tập hữu hạn.

Seminar chuyên đề
Phân loại bài toán tổ hợp

Bài toán đếm Bài toán tồn


tổ hợp tại tổ hợp
(Counting (Existence
Problem) Problem)

Bài toán tối ưu


Bài toán liệt kê
tổ hợp
tổ hợp
(Combinatorial
(Enumeration
optimization
Problem)
Problem)

Seminar chuyên đề
Bài toán đếm tổ hợp

Đây là các bài toán nhằm trả lời câu hỏi: “Có bao nhiêu cấu hình thoả
mãn các điều kiện cho trước?".
Phương pháp đếm thường dựa vào một số nguyên lý cơ bản và một số
kết quả đếm các cấu hình đơn giản.
Bài toán đếm được áp dụng một cách có hiệu quả vào những công việc
mang tính chất đánh giá như tính xác suất của một sự kiện, tính độ
phức tạp của một thuật toán,...

Seminar chuyên đề
Bài toán tồn tại tổ hợp

Khác với bài toán đếm, trong bài toán tồn tại tổ hợp chúng ta cần trả lời
câu hỏi: “Tồn tại hay chăng cấu hình tổ hợp thoả mãn các tính chất đã
cho?”.
Rõ ràng nếu có thể đếm được số lượng cấu hình tổ hợp thoả mãn các
tính chất đó cho thì ta cũng giải quyết được bài toán tồn tại tương ứng!
Có thể coi bài toán tồn tại như trường hợp riêng của bài toán đếm được
không?

Seminar chuyên đề
Phân biệt hai bài toán đếm và tồn tại
• Trong bài toán đếm, sự tồn tại cấu hình là hiển
nhiên và vấn đề là cần đếm xem có bao nhiêu cấu
hình thỏa mãn ?
• Trong bài toán tồn tại, bản thân sự tồn tại cấu hình
là vấn đề nghi vấn. Cần giải quyết vấn đề “có hay
không có” cấu hình như vậy.
• Việc chỉ ra được một cấu hình là đủ để khẳng định
là tồn tại. Nhưng để chỉ ra sự không tồn tại cấu
hình đòi hỏi phải đưa ra những lập luận tin cậy.

Seminar chuyên đề
Bài toán liệt kê tổ hợp
• Bài toán này quan tâm đến việc đưa ra tất cả các cấu hình thỏa mãn các
điều kiện cho trước.
• Vì thế lời giải của nó cần được biểu diễn dưới dạng thuật toán vét cạn tất
cả các cấu hình có thể có. Lời giải trong từng trường hợp cụ thể sẽ được
máy tính giải quyết theo thuật toán đã nêu.
• Bài toán liệt kê được làm nền cho nhiều bài toán khác. Hiện nay, một số
bài toán đếm, tối ưu, tồn tại vẫn chưa có cách giải nào hiệu quả ngoài
cách liệt kê. Nếu trước đây cách giải liệt kê còn mang nặng tính lý thuyết
thì bây giờ nó ngày càng khả thi hơn nhờ sự phát triển nhanh chóng của
kỹ thuật máy tính điện tử và thuật toán.
• Các thuật toán thường được sử dụng để giải bài toán liệt kê tổ hợp như
thuật toán thuật toán quay lui, thuật toán nhánh cận, thuật toán sinh.
Seminar chuyên đề
Bài toán tối ưu tổ hợp
• Khác với bài bài toán liệt kê, bài toán tối ưu chỉ quan tâm đến một cấu
hình "tốt nhất" theo một nghĩa nào đấy.
• Trong các bài toán tối ưu, mỗi cấu hình được gán cho một giá trị số (là giá
trị sử dụng hoặc chi phí xây dựng cấu hình), và bài toán đặt ra là trong số
những cấu hình thoả mãn các điều kiện cho trước hãy tìm cấu hình với giá
trị số gán cho nó là lớn nhất hoặc nhỏ nhất.
• Đây là bài toán có nhiều ứng dụng trong thực tiễn và lý thuyết tổ hợp đã
đóng góp một phần đáng kể trong việc xây dựng được những thuật toán
hữu hiệu.
• Các thuật toán thường được sử dụng để giải bài toán tối ưu tổ hợp như
thuật toán quy hoạch động, thuật toán quay lui, thuật toán nhánh cận,
thuật toán tham lam, thuật toán heuristic, thuật toán metaheuristic.
Seminar chuyên đề
• Cho (S, f) là bài toán tối ưu, trong đó S  Ø
biểu diễn cho không gian lời giải (còn được gọi
là không gian tìm kiếm của bài toán) và f là hàm
mục tiêu:
f: S → R
Định nghĩa • Theo đó, việc giải bài toán tối ưu là quá trình
tìm ra tập chứa giá trị các biến quyết định sao
bài toán tối cho lời giải tìm được được biểu diễn bởi những
giá trị x*  S thỏa mãn bất đẳng thức:
ưu f(x*) ≤ f(x), ∀x S. (dạng tìm cực tiểu)
Ví dụ: Xét bài toán tối ưu sau (miền nguyên)

Seminar chuyên đề
• Một bài toán là NP-đầy đủ có tính chất
rằng, nó có thể giải được trong thời gian
đa thức nếu và chỉ nếu tất cả các bài toán
NP-đầy đủ khác giải được trong thời gian
đa thức.
Lớp bài toán • Nếu một bài toán NP- khó giải được trong
NP-khó và thời gian đa thức thì tất cả các bài toàn
NP-đầy đủ giải được trong thời gian đa
NP-đầy đủ thức.
• Người ta đã chỉ ra rằng, lớp NP-đầy đủ là
lớp con của lớp NP – khó; có bài toán là
NP – khó nhưng không phải là NP-đầy đủ.

Seminar chuyên đề
• Các lớp NP – khó và NP - đầy đủ liên quan tới sự tính toán
không đơn định (nondeterministic computations).
• Không thể thực hiện được sự tính toán không ổn định trong
thực tế, bởi vậy về mặt trực quan, chúng ta có thể phỏng
đoán (chưa chứng minh được) rằng, các bài toán NP - đầy đủ
hoặc NP – khó không giải được trong thời gian đa thức.
• Định nghĩa. Lớp P bao gồm tất cả các bài toán giải được bởi
thuật toán đơn định trong thời gian đa thức (tức là tồn tại
thuật toán giải quyết nó với thời gian chạy đa thức).

Seminar chuyên đề
Thuật toán đơn định và thuật toán không đơn định
• Thuật toán mà kết quả thực hiện của mỗi phép toán được xác
định một cách duy nhất được gọi là thuật toán đơn định
(deterministic algorithm). Thuật toán mà kết quả thực hiện của
mỗi phép toán là một tập hữu hạn các giá trị được gọi là thuật
toán không đơn định (nondeterministic algorithm).
• Để xác định lớp NP các bài toán, chúng ta cần phải đưa vào khái
niệm thuật toán không đơn định.
• Định nghĩa. Lớp NP bao gồm tất cả các bài toán có thể giải được
bởi thuật toán không đơn định trong thời gian đa thức.

Seminar chuyên đề
• Định lý (S. Cook). Bài toán thoả được thuộc lớp P nếu và chỉ
nếu P = NP.
• Chứng minh định lý này rất phức tạp, chúng ta không đưa ra.
Bây giờ chúng ta xác định hai lớp bài toán: lớp NP – khó và lớp
NP - đầy đủ.
• Với ý tưởng sử dụng thuật toán giải một bài toán để nhận
được thuật toán giải các bài toán khác, chúng ta có định nghĩa
sau:

Seminar chuyên đề
• Định nghĩa. Ta nói bài toán B1 quy dẫn về bài toán B2 (ký hiệu
B1 << B2) nếu ta có thể biến đổi trong thời gian đa thức đầu
vào của bài toán B1 (input1) thành đầu vào của bài toán B2
(input2) sao cho ta có thể nhận được nghiệm của bài toán B1
(output1) từ nghiệm của bài toán B2 (output2) bởi phép biến
đổi trong thời gian đa thức.
• Từ định nghĩa trên, ta suy ra lược đồ chứng minh bài toán B1
quy dẫn về bài toán B2 là như sau:

Seminar chuyên đề
Phép biến Thuật Phép biến
input1 đổi trong input2 toán giải output2 đổi trong output1
thời gian B2 thời gian
đa thức đa thức

Seminar chuyên đề
• Dễ dàng thấy rằng, quan hệ “quy dẫn về” có tính bắc cầu, tức là
nếu B1 << B2 và B2 << B3 thì B1 << B3. Cũng rõ ràng rằng, nếu B1
quy dẫn về B2 và B2 là giải được trong thời gian đa thức thì B1
cũng giải được trong thời gian đa thức.
• Định nghĩa. Một bài toán là NP – khó nếu bài toán thoả được
quy dẫn về bài toán đó. Một bài toán là NP - đầy đủ nếu nó là
NP- khó và nó thuộc lớp NP.
• Theo định nghĩa trên, bài toán thoả được là NP - đầy đủ. Làm
thế nào để chứng minh một bài toán là NP- khó ? Do quan hệ <<
có tính bắc cầu, để chứng minh bài toán B là NP- khó, ta chỉ cần
chứng minh một bài toán A nào đó mà ta đã biết là NP – khó qui
dẫn về bài toán B, A << B.
❖Xét một số toán NP-hard , NP-Complete sau đây:
Seminar chuyên đề
• Traveling Saleman Problem - TSP
Giới thiệu một • Coloring problem
số bài toán • Assignment problem
NP-khó và NP- • Max clique problem - MCP
đầy đủ • Steiner minimal trees problem - SMT
• Vehicle routing problem - VRP

Seminar chuyên đề
• Có n thành phố (được đánh số từ 1
đến n), một người bán hàng xuất phát
từ một thành phố, muốn đi qua tất cả
Traveling các thành phố khác, mỗi thành phố
một lần rồi quay về thành phố xuất
Saleman phát. Giả thiết biết được chi phí đi từ
thành phố i đến thành phố j là cij, hãy
Problem- tìm một hành trình cho người bán hàng
sao cho tổng chi phí theo hành trình
TSP này là thấp nhất.
• Bài toán này được gọi với tên gọi
quen thuộc là bài toán người bán hàng
(Traveling Saleman Problem-TSP); bài
toán người bán hàng thuộc lớp NP-khó.
Seminar chuyên đề
• Cho n thành phố, hãy tô màu các thành
phố này sao cho không có bất kỳ hai
thành phố nào kề nhau được tô cùng
một màu và số màu được tô là ít nhất có
thể.
Coloring • Dữ liệu vào được lưu trên một trận
vuông cij.
problem • Nếu cij = 1 thì hai thành phố i,j là kề nhau,
cij=0 thì hai thành phố i,j không kề nhau.
• Bài toán tô màu là bài toán thuộc lớp bài
toán NP-Đầy đủ.

Seminar chuyên đề
▪Cã n c«ng viÖc vµ n thî; mçi thî
®Òu cã kh¶ n¨ng thùc hiÖn tÊt c¶
c¸c c«ng viÖc, wij là hiÖu qu¶ ph©n
c«ng thî i lµm c«ng viÖc j, (i, j = 1,
2,..., n).
Assignment ▪T×m c¸ch ph©n c«ng thî thùc hiÖn
problem c¸c c«ng viÖc sao cho mçi thî chØ
thùc hiÖn mét viÖc vµ mçi viÖc chØ
do mét thî thùc hiÖn, ®ång thêi
tæng hiÖu qu¶ thùc hiÖn c¸c c«ng
viÖc lµ lín nhÊt.
Seminar chuyên đề
Định nghĩa 1. Clique
• Cho đồ thị vô hướng liên thông
G=(V,E); trong đó V là tập đỉnh, E là
Maximum tập cạnh. Tập đỉnh C  V được gọi là
một clique của đồ thị G nếu mọi cặp
clique đỉnh (u,v) trong C đều là cạnh thuộc
tập E.
problem • Số lượng đỉnh (hay còn gọi là kích
thước) của một clique C ký hiệu là
|C|. Nếu clique C chứa đỉnh v thì
|C| deg(v) + 1.

Seminar chuyên đề
Định nghĩa 2. Clique cực đại

C được gọi là một clique cực đại nếu C là một clique và C không
thuộc về bất kỳ một clique nào khác có số đỉnh nhiều hơn nó.

Seminar chuyên đề
Định nghĩa 3. Clique lớn nhất

• C được gọi là một clique lớn nhất của đồ thị G nếu C là một
clique và C có số đỉnh lớn nhất trong số các clique của G. Số
lượng đỉnh của clique lớn nhất trong đồ thị G ký hiệu là (G) và
gọi là chỉ số clique của đồ thị G.
• Một clique lớn nhất là một clique cực đại nhưng một clique
cực đại chưa chắc đã là một clique lớn nhất.

Seminar chuyên đề
Định nghĩa 4. Bài toán clique lớn nhất

• Cho đồ thị vô hướng liên thông G=(V,E); trong đó V là tập đỉnh, E là tập
cạnh. Bài toán clique lớn nhất (maximum clique problem-MCP) là bài toán
tìm một clique lớn nhất trong đồ thị đã cho. Trong trường hợp tổng quát,
bài toán clique lớn nhất đã được chứng minh thuộc lớp NP-hard.
• Nếu G = (V,E) là đồ thị không có trọng số thì (G) =max{|C|: C là một
clique của đồ thị G}; nếu G = (V,E) là đồ thị có trọng số (trên đỉnh) thì kích
thước của clique C lớn nhất (clique weight) của G ký hiệu là w(C) bằng
tổng trọng số các đỉnh của C; khi đó w(G) =max{|C|: C là một clique của
đồ thị G}. Trong phạm vi bài báo này, chúng tôi chỉ giới hạn xem xét bài
toán clique lớn nhất trong trường hợp đồ thị không có trọng số.

Seminar chuyên đề
Seminar chuyên đề
Định nghĩa 1. Cây Steiner
• Cho G = (V(G), E(G)) là một đơn đồ thị vô
hướng liên thông và có trọng số không âm trên
cạnh; trong đó V(G) là tập gồm n đỉnh, E(G) là tập
gồm m cạnh, w(e) là trọng số của cạnh e với e 
Steiner E(G). Cho L là tập con các đỉnh của V(G), cây T đi
qua tất cả các đỉnh trong L được gọi là cây steiner
minimal của L.
• Tập L được gọi là tập terminal, các đỉnh thuộc
trees tập L được gọi là đỉnh terminal. Đỉnh thuộc cây T
mà không thuộc tập L được gọi là đỉnh Steiner.
problem Khác với bài toán cây khung nhỏ nhất (minimum
spanning tree problem); cây steiner chỉ cần đi
qua tất cả các đỉnh thuộc tập terminal L và có thể
thêm một số đỉnh khác nữa thuộc tập V(G) chứ
không nhất thiết phải đi qua tất cả các đỉnh của
đồ thị.

Seminar chuyên đề
Định nghĩa 2. Chi phí cây Steiner

Cho T = (V(T), E(T)) là một cây steiner của đồ thị G. Chi phí của
cây T, ký hiệu là C(T), là tổng trọng số của các cạnh thuộc cây T,
tức là C(T) = eE(T) w(e).

Seminar chuyên đề
Định nghĩa 3. Cây Steiner nhỏ nhất

Cho đồ thị G được mô tả như trên, bài toán tìm cây steiner có
chi phí nhỏ nhất được gọi là bài toán cây teiner nhỏ nhất
(steiner minimal trees problem – SMT); hoặc được gọi ngắn
gọn là bài toán cây steiner (steiner trees problem).

Seminar chuyên đề
• SMT là bài toán tối ưu tổ hợp nổi tiếng của lý thuyết đồ thị. Trong
trường hợp tổng quát, SMT đã được chứng minh thuộc lớp NP-hard.
• Có hai trường hợp đặc biệt đối với bài toán SMT là giải được trong thời
gian đa thức; đó là khi L=V(G) và khi |L|=2:
✓ Khi L=V thì bài toán SMT có thể giải bằng các thuật toán tìm cây
khung nhỏ nhất; chẳng hạn như thuật toán Prim, thuật toán
Kruskal;
✓ khi |L|=2 thì bài toán SMT có thể giải được bằng các thuật toán
tìm đường đi ngắn nhất giữa hai đỉnh; chẳng hạn như thuật toán
Dijkstra.
Seminar chuyên đề
• Cho đồ thị G có 10
đỉnh và 15 cạnh như
hình 1; trong đó tập
L={1,5,6}.

Seminar chuyên đề
Bài toán Cho một tập hợp gồm m xe giống nhau
cùng xuất phát tại một kho hàng đi làm
vehicle nhiệm vụ giao hàng cho n khách hàng.
Mỗi khách hàng đòi hỏi cung cấp một
routing lượng hàng nhất định. Yêu cầu đặt ra
problem của bài toán là tối thiểu hóa tổng
khoảng cách di chuyển của các xe để
(VRP) đáp ứng được đòi hỏi của tất cả các
khách hàng.

Seminar chuyên đề
VRP là một mở rộng của bài toán TSP

• TSP (travelling salesman problem): Một người bán hàng - hiểu


tương ứng như một xe giao hàng.
• Xuất phát từ một thành phố, một người bán hàng sẽ đi giao
hàng tại tất cả các thành phố; mỗi thành phố đi qua đúng một
lần và cuối cùng quay trở về thành phố xuất phát.
• Nhiệm vụ của bài toán TSP là tìm một lộ trình với độ dài
quãng đường di chuyển là nhỏ nhất.
• TSP là bài toán tối ưu rời rạc thuộc lớp NP-hard.

Seminar chuyên đề
VRP là một mở rộng của bài toán TSP (…)
VRP (vehicle routing problem): Xét một VRP cơ bản sau đây:
Cho tập gồm m xe (người bán hàng) được tập kết tại một kho
hàng và mỗi khách hàng có một (hoặc nhiều) yêu cầu vận
chuyển. Vấn đề đặt ra là tìm cách định tuyến cho tập m xe này
để phục vụ được các yêu cầu của tất cả khách hàng sao cho
tổng khoảng cách di chuyển của các xe là nhỏ nhất.
VRP là bài toán m-TSP.
VRP là bài toán tối ưu rời rạc thuộc lớp NP-hard.

Seminar chuyên đề
Ví dụ:

(có một kho hàng, 12 khách hàng;


2 lộ trình bao gồm: 0 2 3 1 4 6 10 0 và 0 7 8 9 11 12 0)
Seminar chuyên đề
Các tiêu chuẩn phân loại bài toán VRP
1. Số lượng mục tiêu (đơn/đa)
2. Ràng buộc về thời gian (không ràng buộc, có cửa số thời gian 1 bên/hai bên, cứng hoặc
mềm)
3. Số kho (một hoặc nhiều kho)
4. Đa sử dụng xe (một xe phục vụ 1 lộ trình hay có thể nhiều hơn 1)
5. Thuộc tính của các xe vận chuyển (các xe đồng nhất về khả năng vận chuyển hoặc không)
6. Loại lộ trình (đóng: xe quay trở về kho trung tâm; mở:…)
7. Kiểu phục vụ (kiểu phục vụ đơn: hoặc phân phối hoặc lấy hàng mang trở về/ kiểu phục vụ
hỗn hợp: vừa có phân phối vừa có mang trở về)
8. Ràng buộc nhu cầu (tất cả khách hàng/một số khách hàng)
9. Thời gian hoạch định (Khoảng thời gian phân phối đơn/xác định khách hàng nào được
phục vụ tại một thời điểm của hoạch định),…
Seminar chuyên đề
Một số dạng bài toán VRP

1. VRP với hạn chế khả năng chở hàng hóa (capacitated vehicle routing problem-
CVRP)
2. VRP với hạn chế thời gian (vehicle routing problem with windows -VRPTW)
3. VRP với nhiều kho hàng (multi-depot vehicle routing problem -MDVRP)
4. VRP đa mục tiêu (Multi-objective vehicle routing problems - MOVRP)
5. VRP tách phân phối (split delivery vehicle routing problem -SDVRP)
6. VRP mở (open vehicle routing problem -OVRP)
7. VRP với khả năng chuyên chở về (VRP with backhauling-VRPB),...
8. VRP với nhiều loại xe khác nhau ()
9. VRP với đơn đặt hàng định kỳ (periodic vehicle routing problem - PVRP)
10. VRP với yêu cầu xe phù hợp đối với khách hàng()
11. VRP với khoảng cách đối xứng hoặc khoảng cách bất đối xứng (),…
Seminar chuyên đề
Một số luận án về VRP
[1] Anthony Smith, Tiered-Facility Vehicle Routing Problem with Global Cross-Docking,
Doctor of Philosophy, in the Faculty of Engineering at Stellenbosch University, 2018.
[2] Maryam Abdirad, “Dynamic vehicle routing problem with industry 4.0 approach”,
thesis (Ph.D), Wichita State University, 2021.
[3] Allan Larsen, “The dynamic vehicle routing problem”, 2000, Technical University of
Denmark, thesis (Ph.D), 192 page.
[4] Nguyễn Ngọc Quang, “Các phương pháp heuristics giải bài toán định vị và hướng lộ
trong hậu cần đô thị” (luận án tiến sĩ, ĐHBK Hà Nội, GVHD: PGS Nguyễn Đức Nghĩa, PGS Đỗ
Phan Thuận, 2021, 110 trang).
[5] Thanh Tan Doan, “Vehicle routing problems with additional constraints imposed on
different groups of customers”, thesis (Ph.D), L’UNIVERSITÉ DE NANTES, 2021, 159 page.

Seminar chuyên đề
Các kỹ thuật giải bài toán tối ưu

 
Seminar chuyên đề

You might also like