You are on page 1of 2

Tối ưu hóa

Đại học Khoa học Tự nhiên, ĐHQGHN


BÀI TẬP 3 Học kỳ: HK2/2021-2022
Giảng viên: Hoàng Nam Dũng
Hoàng Anh Quân
Hạn nộp bài: 18.03.2022

Chú ý.
- Sinh viên cần ghi đầy đủ tên, mã sinh viên, lớp đại học của tất cả thành viên trong nhóm.
- Tất cả phần bài làm liên quan tới lập trình cần được trình bày trong một file Ipython notebook
với tên được đặt giống hệt file bài làm, chỉ thay định dạng từ pdf thành ipynb.
- Không gửi link Google Colab.

Bài tập 1. Xét bài toán qui hoạch tuyến tính

max cT x
s.t. Ax ≤ b
x≥0
trong đó x = (x1 x2 x3 )T , ma trận A có kích thước 4 × 3, vector cột b và vector cột c lần lượt
có 4 và 3 phần tử.
Đối với mỗi nhóm bài tập, giá trị của A, b, c được xác định trong file tham số

assignment03_problem01_parameters.txt

gửi kèm bài tập này. Ví dụ, nhóm 2 lớp MAT2407-1 sẽ sử dụng bộ giá trị trong mục có tiêu đề
MAT2407-1 group 02. Giá trị của A, b, c phải được ghi rõ trong phần đầu của bài làm.

Hãy vẽ hình đa diện và sử dụng thuật toán bảng đơn hình giải bài toán trên. Hãy thể hiện vị
trí các đỉnh được chọn theo từng bước của thuật toán trên hình vẽ.

Bài tập 2. (bài tập lập trình)


a) Viết một hàm xác định phương trình đường thẳng đi qua hai điểm trong mặt phẳng Oxy.
Đầu vào: hai tuple biểu diễn toạ độ hai điểm trên mặt phẳng.
Đầu ra: một tuple gồm ba hệ số a, b, c của phương trình đường thẳng ax + by = c.

b) Viết một hàm xác định phương trình mặt phẳng đi qua ba điểm không thẳng hàng trong
không gian Oxyz.
Đầu vào: ba tuple biểu diễn toạ độ ba điểm không thẳng hàng trong không gian.
Đầu ra: một tuple gồm bốn hệ số a, b, c, d của phương trình mặt phẳng ax + by + cz = d.

(Điểm thưởng) Viết hàm thỏa mãn những yêu cầu trên, đồng thời thỏa mãn thêm điều kiện:

Nếu các điểm đầu vào là điểm nguyên thì các hệ số đầu ra là các số nguyên.
Bài tập 03 Tối ưu hóa - 2022

Mở đầu về mô hình hóa


Mô hình hóa là một trong những kỹ năng quan trọng1 để giải quyết những vấn đề thực tế.
Kỹ năng mô hình hóa giúp chuyển một mô hình thực tế thành một mô hình toán học, từ đó
cho phép áp dụng những công cụ toán học (ví dụ như tối ưu nguyên) để giải quyết vấn đề.
Bài tập dưới đây giúp sinh viên làm quen với những suy luận đặc trưng của mô hình hóa.

Bài tập 3. (bài tập mô hình hóa - mở đầu)


Xét một bài toán nổi tiếng:

Đặt 8 quân hậu trên bàn cờ vua tiêu chuẩn 8 × 8 sao cho
không có hai quân hậu nào tấn công nhau.

Bàn cờ vua tiêu chuẩn có 8 hàng và 8 cột. Ta định nghĩa một đường chéo là một tập hợp gồm ít
nhất hai tọa độ, các tọa độ cùng nằm trên một đường thẳng tọa với trục ngang (cũng như trục
dọc) một góc 45◦ . Có tất cả 26 đường chéo trên bàn cờ vua. Một quân hậu có thể tấn công một
ô cùng hàng ngang, cột dọc, hoặc đường chéo nếu những ô ở giữa là trống.

Ta sẽ xây dựng một mô hình tối ưu tuyến tính để giải quyết bài toán này.

Đầu tiên, cần tìm cách biểu diễn vị trí đặt những quân hậu. Với mỗi tọa độ (i, j) trên bàn cờ,
ta định nghĩa một biến xi,j nhận giá trị lần lượt là 1 hoặc 0 ứng với trường hợp tọa độ đó có
quân hậu hoặc không có quân hậu.

a) Dựa theo mô tả trên, có tất cả bao nhiêu biến có dạng này? Dựa theo giá trị có thể nhận
được, những biến này có tên gọi là gì?

b) Nêu biểu thức thể hiện số quân hậu trên bàn cờ. Nêu điều kiện (tuyến tính) thể hiện việc
trên bàn cờ có đúng 8 quân hậu.

Tiếp theo ta quan tâm tới điều kiện quan trọng nhất của bài toán - không có hai quân hậu nào
tấn công nhau. Bằng suy luận toán học, ta có thể chứng minh rằng điều này tương đương với
điều kiện

(ĐK*) Mỗi hàng, mỗi cột, mỗi đường chéo của bàn cờ chỉ có tối đa một quân hậu.

c) Chứng minh sự tương đương trên.

d) Liệt kê tất cả điều kiện (tuyến tính) thể hiện (ĐK*).

e) Trình bày mô hình tối ưu tuyến tính/tối ưu nguyên giải quyết bài toán đặt ra ở đầu bài.

Bài tập 4. (điểm thưởng)


Liệt kê tất cả các cách đặt 8 quân hậu trên bàn cờ vua tiêu chuẩn 8 × 8 sao cho không có hai
quân hậu nào tấn công nhau.

1
Đọc thêm về Modeling, Simulation, and Optimization

You might also like