Tạo game 2D tìm kho báu, va chạm và AI thú rừng
Từ mô hình bản đồ tới vòng lặp game, thu thập vật phẩm, BFS và bộ kiểm thử có thể chạy lại.
Đọc chuyên đề · 16 phútHọc liệu thực hành về lập trình và kiểm thử phần mềm, cùng sổ tay nghiên cứu lập thời khóa biểu và phân bổ nguồn lực ở đại học.
Chọn bài thực hành ngắn để bắt đầu, hoặc đọc các chuyên đề dài có phản ví dụ, lập luận và mã nguồn kiểm chứng.
Từ mô hình bản đồ tới vòng lặp game, thu thập vật phẩm, BFS và bộ kiểm thử có thể chạy lại.
Đọc chuyên đề · 16 phútDựng khối hộp, nhân ma trận Model–View–Projection, điều khiển camera và kiểm tra va chạm trên mặt đất.
Đọc chuyên đề · 17 phútViết luật lựa chọn và dùng số nghiệm để kiểm chứng miền ứng viên.
Đọc chuyên đề · 4 phútDùng biểu thức tổng có mã nhóm để tránh tính thiếu hai nhóm bằng sĩ số.
Đọc chuyên đề · 4 phútViết chuỗi kiểm thử có khởi tạo lại và phân biệt lần sai thứ hai, thứ ba.
Đọc chuyên đề · 4 phútThay đúng một điều kiện để quan sát ảnh hưởng độc lập lên quyết định.
Đọc chuyên đề · 4 phútTách kiểm tra đầu vào khỏi màn hình để chạy ca thử trực tiếp.
Đọc chuyên đề · 4 phútPhân biệt đang tải, danh sách trống, có dữ liệu và lỗi bằng tình huống cụ thể.
Đọc chuyên đề · 4 phútTiền xử lý một lần để tính tổng đoạn bằng hai mốc chỉ số.
Đọc chuyên đề · 4 phútDùng bảng băm và quy tắc phá hòa rõ ràng cho mã học phần.
Đọc chuyên đề · 4 phútĐếm đăng ký theo lớp và giữ dòng kết quả bằng 0.
Đọc chuyên đề · 4 phútBiến mô tả nghiệp vụ thành bảng chuyển tiếp và ca thử từ chối.
Đọc chuyên đề · 4 phútSuy ra ngưỡng làm đảo thứ hạng lịch, chứng minh cận trọng số và thử lại trên mô phỏng.
Đọc chuyên đề · 17 phútDựng phản ví dụ cho cách xếp ca chỉ theo đồ thị xung đột, rồi kiểm tra phòng bằng ghép cặp hai phía.
Đọc chuyên đề · 18 phútSuy luận về phép hoán vị, đổi mã và nới ràng buộc. Tạo ca neo và phản ví dụ để phát hiện lỗi phụ thuộc dữ liệu.
Đọc chuyên đề · 18 phútPhân biệt xoay màn hình, thu hồi tiến trình và mở phiên mới. Kiểm tra khôi phục dữ liệu và phản hồi bất đồng bộ.
Đọc chuyên đề · 16 phútDựng tình huống ghi đồng thời, bảo vệ bất biến bằng câu lệnh có điều kiện và kiểm tra yêu cầu gửi lại.
Đọc chuyên đề · 17 phútĐọc mô hình Clingo theo từng dòng và theo dõi cách bộ giải giảm điểm phạt.
Đọc bài thực hànhDùng Intent tường minh để mở màn hình chi tiết và truyền mã học phần.
Từ một yêu cầu về sĩ số, thiết kế ca kiểm thử có dữ liệu và kết quả mong đợi.
Dùng nguyên tắc vào sau, ra trước để phát hiện dấu đóng sai thứ tự.
Mô tả tác nhân, luồng thành công và ngoại lệ trước khi vẽ biểu đồ.
Kết hợp điều kiện tiên quyết và chỗ trống để xác định kết quả mong đợi.
Đọc từ nền tảng lý thuyết đến câu hỏi nghiên cứu, suy luận và thực hành. Mỗi bài có sơ đồ, ví dụ và mã nguồn để đối chiếu.
65 bài viết
ASP & Clingo
Tách thiếu bằng chứng khỏi bằng chứng phủ định, thiết kế miền phòng theo chính sách dữ liệu và kiểm tra mâu thuẫn.
ASP & Clingo
Phân tích điều kiện mọi kỹ năng, phạm vi biến và sự khác nhau giữa yêu cầu rỗng hợp lệ với dữ liệu chưa hoàn chỉnh.
ASP & Clingo
Mã hóa nhu cầu đồng thời, khoảng nửa mở và khóa phần tử tổng, kèm đối chiếu tập lịch bằng oracle độc lập.
ASP & Clingo
Tách mẫu tuần, hủy và bổ sung buổi học; kiểm chứng xung đột qua phép giao tập tuần trước và sau ngoại lệ.
ASP & Clingo
Chứng minh một điểm không bị trội vẫn không thắng với trọng số dương, rồi tìm lại bằng cách đặt ngưỡng mục tiêu.
ASP & Clingo
Tối ưu ba cấp thay đổi so với lịch cũ, phân biệt lớp bị ảnh hưởng và thuộc tính bị đổi, kiểm tra phạm vi đóng băng.
ASP & Clingo
Phân biệt luật suy ra khả năng đi tới với việc tự gán đúng các đỉnh trong một chu trình.
ASP & Clingo
Dùng hợp và giao của tập nghiệm để trả lời hai loại câu hỏi nghiệp vụ.
ASP & Clingo
Chỉ ra ảnh hưởng của nguyên tử phụ đối với thống kê số phương án.
ASP & Clingo
Phân biệt tối tiểu theo bao hàm, ít phần tử nhất và tổng chi phí nhỏ nhất.
ASP & Clingo
Xác định khi nào có thể tìm biên khả thi bằng tìm kiếm nhị phân.
Kiểm thử phần mềm
Thiết kế bộ dữ liệu tách sự hiện diện của khóa khỏi kiểu giá trị.
Kiểm thử phần mềm
Phân biệt sai số tương đối, tuyệt đối và giới hạn của quan hệ gần đúng.
Kiểm thử phần mềm
Tính điểm Ochiai và đọc thứ hạng như gợi ý kiểm tra mã.
Kiểm thử phần mềm
Phân biệt yêu cầu quá hạn với yêu cầu chưa quan sát đủ lâu.
Kiểm thử phần mềm
Giải thích vì sao lưu seed cần đi cùng phiên bản bộ sinh và dữ liệu gây lỗi.
ASP & Clingo
Giảm số phương án hoán vị phòng mà vẫn giữ đại diện cho mỗi lịch nghiệp vụ.
ASP & Clingo
Phân biệt ca bắt đầu, các ca chiếm dụng và xung đột tại ca cuối.
ASP & Clingo
Phát hiện lịch đủ ca nhưng thiếu thời gian đi giữa hai cơ sở.
ASP & Clingo
So lịch tổng phạt thấp với lịch phân bổ gánh nặng đồng đều hơn.
ASP & Clingo
Đo số lớp đổi ca để phân biệt nhiều nghiệm có giá trị sử dụng.
ASP & Clingo
So quyết định chỉ tốt ở kịch bản thường với quyết định giữ mức phạt thấp ở nhiều kịch bản.
Kiểm thử phần mềm
Thiết kế oracle quan sát từng tài khoản và tổng tiền trước, sau chuỗi chuyển khoản.
Kiểm thử phần mềm
Phân biệt dữ liệu chưa kịp cập nhật, vượt hạn và cập nhật sai giá trị.
Kiểm thử phần mềm
Đo tác động khi thao tác đã ghi thành công nhưng máy khách chưa nhận xác nhận.
Kiểm thử phần mềm
Phân biệt đi qua mọi trạng thái với thực thi đủ mọi chuyển tiếp hợp lệ.
Kiểm thử phần mềm
Tách thao tác gây lỗi khỏi dữ liệu nhiễu và kiểm tra giới hạn của phép thu nhỏ tham lam.
Kiểm thử phần mềm
Dựng mô phỏng cho thấy số yêu cầu trong lúc hệ thống chậm phụ thuộc mô hình phát tải.
Android & Kiến trúc
Dùng mã thế hệ để chặn phản hồi cũ ghi đè truy vấn mới trên Android.
Android & Kiến trúc
Giữ đủ các mục trùng thời điểm khi đọc trang tiếp từ SQLite.
Android & Kiến trúc
Phân biệt chưa có dữ liệu, đang làm mới và có bản cũ khi mạng lỗi.
Android & Kiến trúc
Nâng cấp bản lưu cũ có phiên bản và bảo toàn nội dung người dùng đang nhập.
Cấu trúc dữ liệu & Giải thuật
Dùng bậc vào và hàng đợi ưu tiên để sinh thứ tự ổn định và phát hiện chu trình.
Cấu trúc dữ liệu & Giải thuật
Tính đỉnh đồng thời và xử lý đúng các buổi học tiếp giáp.
Cấu trúc dữ liệu & Giải thuật
Gộp các cụm khi thêm quan hệ và nhận diện giới hạn khi xóa cạnh.
Cấu trúc dữ liệu & Giải thuật
Dùng quy hoạch động và truy vết để sửa sai cho lựa chọn tham lam theo giờ kết thúc.
ASP & Clingo
So sánh hai cách tạo biến xếp lịch, chứng minh chúng giữ nguyên tập nghiệm và đo kích thước miền.
ASP & Clingo
Đọc vector chi phí theo từng mức và tìm lỗi tính thiếu khi các phần tử có cùng bộ định danh.
ASP & Clingo
Dùng biến external để khóa và mở ca qua nhiều lượt giải, rồi đối chiếu với mô hình dựng lại.
ASP & Clingo
Gắn nhãn quy tắc, lấy nhóm giả thiết xung đột và thử bỏ từng nhãn để tìm nhóm tối tiểu.
ASP & Clingo
So tập lịch sau phép chiếu và dùng oracle vét cạn để phát hiện mã hóa chấp nhận phương án sai.
Kiểm thử phần mềm
Dùng ma trận ca–đột biến để so hai bộ kiểm thử, chứng minh một đột biến tương đương và xác định mẫu số.
Kiểm thử phần mềm
Tạo bộ ca bao phủ các cặp khả thi, chứng minh cận dưới và tìm một tương tác ba chiều bị bỏ sót.
Kiểm thử phần mềm
Dựng thí nghiệm hai thứ tự để tìm trạng thái dùng chung và kiểm chứng hiệu quả của cơ chế cô lập.
Kiểm thử phần mềm
Thiết kế phép đo hồi quy độ trễ, lấy mẫu theo phiên và diễn giải độ bất định trên dữ liệu mô phỏng.
Kiểm thử phần mềm
Dùng oracle tập hợp độc lập để phát hiện lỗi ở khoảng thời gian nửa mở và tìm phản ví dụ tối giản.
ASP & Tối ưu
Suy ra ngưỡng làm đảo thứ hạng lịch, chứng minh cận trọng số và thử lại trên mô phỏng.
Đồ thị & Lập lịch
Dựng phản ví dụ cho cách xếp ca chỉ theo đồ thị xung đột, rồi kiểm tra phòng bằng ghép cặp hai phía.
Kiểm thử phần mềm
Suy luận về phép hoán vị, đổi mã và nới ràng buộc. Tạo ca neo và phản ví dụ để phát hiện lỗi phụ thuộc dữ liệu.
Android Java
Phân biệt xoay màn hình, thu hồi tiến trình và mở phiên mới. Kiểm tra khôi phục dữ liệu và phản hồi bất đồng bộ.
Cơ sở dữ liệu
Dựng tình huống ghi đồng thời, bảo vệ bất biến bằng câu lệnh có điều kiện và kiểm tra yêu cầu gửi lại.
ASP
Tính mô hình ổn định bằng tay, đối chiếu với chương trình và nhận ra vì sao một luật tự hỗ trợ không tạo được kết luận.
Cấu trúc dữ liệu
Dùng khoảng nửa mở để tìm vị trí chèn đầu tiên, chứng minh thuật toán và bắt lỗi ở mảng rỗng hoặc có phần tử trùng.
Lập thời khóa biểu
Đặc tả ràng buộc đi lại giữa hai cơ sở, chọn đơn vị phạt và xây các ca kiểm thử tại ranh giới.
Thực nghiệm
Tách tập phát triển và tập độc lập, chuẩn hóa đầu vào và báo cáo chất lượng, độ bao phủ, thời gian với cùng giới hạn chạy.
Logic ứng dụng
Lập bảng chân trị để phân biệt quy tắc suy diễn, điều kiện cấm và ưu tiên mềm có điều kiện.
Giải thích xung đột
Dùng phép thử bỏ từng giả định để tìm một tập vô nghiệm tối tiểu theo bao hàm, kèm lịch làm chứng khi nới từng điều kiện.
ASP & Clingo
Mô hình hóa lớp, ca, phòng và giảng viên. Tìm lịch khả thi rồi giảm điểm phạt bằng một ưu tiên có điều kiện.
Nghiên cứu lập lịch
Đọc lịch từ CSV, chỉ rõ lỗi theo từng dòng và đối chiếu điểm phạt mà không cần gọi lại bộ giải.
Android Java
Xây màn hình chọn học phần và màn hình chi tiết bằng Intent tường minh, có xử lý mã học phần thiếu hoặc sai.
Android Java
Thực hiện thêm, đọc, sửa, xóa danh lam thắng cảnh. Dùng tham số truy vấn và giao dịch khi ghi nhiều bản ghi.
Kiểm thử phần mềm
Từ quy tắc sĩ số 15–45, xây bộ ca có thể phát hiện lỗi ở cả hai biên và lỗi giá trị ngoài miền.
Kiểm thử phần mềm
Kiểm tra mã HTTP, mã lỗi nghiệp vụ và trạng thái dữ liệu bằng node:test trên một API mẫu.
Cấu trúc dữ liệu
Mô hình hóa các điểm trong khuôn viên thành đồ thị, duyệt bằng hàng đợi và khôi phục đường đi từ mảng cha.
Phân tích & thiết kế
Viết luồng chính, rẽ nhánh theo ngoại lệ và truy vết từng bước sang hàm nghiệp vụ cùng ca kiểm thử.
Từ quy định đào tạo đến một lịch có thể kiểm tra, giải thích và đánh giá thực nghiệm.
Biểu diễn lớp học phần, giảng viên, nhóm sinh viên, phòng và ca học. Tách xung đột bắt buộc tránh khỏi các ưu tiên có thể tính điểm phạt.
Dùng ASP/Clingo để xây dựng ví dụ thực hành. Khảo sát thêm CP, SAT/MaxSAT và MIP trên cùng bài toán, điều kiện chạy và tiêu chí đánh giá.
Thiết kế bộ kiểm tra lịch độc lập. Ghi nhận tính khả thi, điểm phạt và thời gian chạy. Đọc ITC 2019 và ITC 2007 Track 3 để phân biệt phạm vi mỗi bộ đối sánh.
Đi từ dữ liệu và giả thiết tới ràng buộc, thực nghiệm và giải thích kết quả. Mở từng chuyên đề để đọc lập luận và bài tập.
Phân biệt môn học, lớp mở và buổi học trước khi đếm quy mô bài toán.
Một học phần có thể mở nhiều lớp, mỗi lớp có nhiều buổi lý thuyết hoặc thực hành. Vì vậy, 80 học phần không mặc nhiên tương đương 80 biến quyết định. Nếu mỗi học phần mở hai lớp và mỗi lớp học ba buổi một tuần, mô hình cần biểu diễn 480 buổi. Phòng và giảng viên được gán cho từng buổi, còn các quan hệ cùng lớp giữ tính nhất quán của lịch.
Dữ liệu tối thiểu gồm mã buổi, học phần, giảng viên, nhóm sinh viên, sĩ số, loại phòng, miền ca và thời lượng. Danh mục phòng có sức chứa, thiết bị, cơ sở và ca bị khóa. Giảng viên có ca bận và điều kiện chuyên môn. Dùng mã định danh để liên kết các bảng, tránh ghép theo tên viết tự do.
Ví dụ trong mô phỏng. Cấu hình liên ngành có 40 giảng viên, 80 học phần, 20 phòng và 3 cơ sở. Bộ sinh hiện quy ước mỗi học phần có một lớp và một buổi 50 phút, nên có đúng 80 dòng cần xếp. Đây là giả thiết để thí nghiệm, cần mở rộng trước khi dùng với dữ liệu đào tạo thực.
Câu hỏi nghiên cứu. Khi nhân số buổi lên ba lần nhưng giữ nguyên số phòng, mật độ miền khả dụng và thời gian tìm lịch thay đổi thế nào?
Một lịch có điểm phạt thấp vẫn bị loại nếu vi phạm điều kiện bắt buộc.
Với mỗi buổi e, đặt biến x(e,t,r) bằng 1 khi buổi được xếp vào ca t và phòng r. Điều kiện đầu tiên là tổng x(e,t,r) trên miền hợp lệ bằng 1. Loại phòng, sức chứa và ca bận có thể dùng để lọc miền trước khi giải. Các cặp buổi dùng chung giảng viên, phòng hoặc nhóm sinh viên phải có khoảng thời gian không giao nhau.
Không chỉ so sánh mã ca. Hai ca 08:00–08:50 và 08:30–09:20 có mã khác nhau nhưng vẫn chồng lấn. Với hai khoảng cùng ngày, có giao nhau khi start₁ < end₂ và start₂ < end₁. Hai buổi tiếp giáp không chồng lấn, nhưng có thể chưa đủ thời gian di chuyển.
Điểm phạt mềm chỉ được tính khi lịch vượt qua toàn bộ kiểm tra cứng. Mô phỏng để trống điểm phạt của lịch vi phạm để tránh hiểu rằng một lịch sai có thể bù bằng sở thích tốt hơn. Ví dụ, lớp 54 sinh viên không thể vào phòng 45 chỗ dù giúp giảng viên tránh ca muộn.
Bài tập. Chuyển sang “Phòng chuyên dụng và sức chứa”, giảm sức chứa bằng cách đổi phòng rồi đọc lý do bị loại. Phân biệt lỗi thiếu chỗ với lỗi sai loại phòng.
Tách thời gian nghỉ thực tế khỏi khoảng cách giữa hai giờ bắt đầu.
Gọi τ(A,B) là số phút cần đi từ cơ sở A tới B. Với hai buổi liên tiếp của cùng giảng viên hoặc nhóm sinh viên trong ngày, điều kiện là start(sau) − end(trước) ≥ τ(A,B). Lịch 08:00–08:50 tại A, tiếp theo 09:00–09:50 tại B chỉ có 10 phút nghỉ. Nếu τ(A,B)=25, cần dịch buổi sau ít nhất tới 09:15 hoặc đổi cơ sở.
Không bắt buộc ma trận đối xứng. Bộ mẫu dùng A→B là 25 phút, B→A là 30 phút, A→C là 35 phút và C→A là 40 phút. Đây là số liệu giả lập. Anh có thể thay từng chiều trong mô phỏng để phân tích giao thông hoặc thời gian đệm. Trong cùng cơ sở, thời gian di chuyển hiện được quy ước bằng 0.
Mô phỏng kiểm tra các chặng liên tiếp theo trình tự buổi học, không cộng thời gian di chuyển qua đêm. Nếu có buổi trung gian tại B, hành trình A→B→C được kiểm tra thành hai chặng. Khi đối sánh ITC 2019, phải đọc riêng ngữ nghĩa SameAttendees và travel trong dữ liệu chuẩn, không đồng nhất tự động với quy tắc của bộ mô phỏng này.
Thí nghiệm. Tăng A→B từ 25 lên 60 phút, giữ B→A ở 30. Ghi lại lớp nào phát sinh lỗi và thử sửa bằng đổi ca hoặc đổi phòng.
Cùng một lịch khả thi có thể được đánh giá khác khi ưu tiên thay đổi.
Mô hình hiện tính P = w₁·n₁ + w₂·n₂ + w₃·n₃ + w₄·n₄. Các đại lượng lần lượt là vi phạm ưu tiên sáng thứ Hai/thứ Sáu của một giảng viên, số lớp bắt đầu từ 15:00, số lượt giảng viên đổi cơ sở trong ngày và số nhóm 10 ghế trống. Đơn vị đếm cần công bố rõ, vì trọng số bằng nhau chưa có nghĩa mức ảnh hưởng bằng nhau.
Ví dụ giả định, lịch L₁ có 3 lớp muộn và 1 lượt đổi cơ sở. Lịch L₂ có 1 lớp muộn và 4 lượt đổi cơ sở. Nếu w_muộn=2 và w_đi=2 thì hai điểm tương ứng là 8 và 10. Nếu w_đi=1 thì điểm là 7 và 6, thứ tự đảo chiều. Đây là phép tính minh họa, không phải kết quả thực nghiệm của cấu hình lớn.
Hãy giữ nguyên dữ liệu, thay từng trọng số, rồi so sánh cả điểm tổng và vector thành phần. Nếu thứ tự ưu tiên là tuyệt đối, có thể nghiên cứu tối ưu từ điển thay vì chọn trọng số rất lớn. Đồng thời, cân nhắc độ công bằng giữa giảng viên, vì tổng phạt thấp có thể dồn bất tiện cho một người.
Bài tập. Chọn hai phương án tìm được, đặt trọng số di chuyển lần lượt 0, 2 và 10. Giải thích sự thay đổi bằng số lượt đổi cơ sở.
Giữ đặc tả chung, lựa chọn cách mã hóa phù hợp với từng bộ giải.
ASP phù hợp để thực hành luật khai báo, lựa chọn và ràng buộc. Với CP có thể nghiên cứu biến miền hữu hạn và ràng buộc toàn cục. SAT/MaxSAT biểu diễn điều kiện bằng mệnh đề và phần tối ưu có trọng số. MIP dùng biến nguyên, điều kiện tuyến tính và hàm mục tiêu. Không nên kết luận một phương pháp tốt nhất chỉ từ một ví dụ hoặc một kích thước dữ liệu.
Thiết kế baseline phải đồng nhất dữ liệu vào, điều kiện khả thi, cách tính phạt, giới hạn thời gian và phần cứng. Trước khi so thời gian, đưa lịch của mọi bộ giải qua cùng bộ kiểm tra độc lập. Một cách mã hóa bỏ sót ràng buộc di chuyển có thể chạy nhanh nhưng đang giải một bài toán khác.
Phạm vi công cụ trên trang. Bộ mô phỏng chạy JavaScript trong trình duyệt, không gọi Clingo, CP hay MIP. Năm ví dụ nhỏ dùng duyệt tổ hợp có giới hạn thời gian và số nút. Kịch bản lớn dùng lịch khởi tạo tham lam và thử thay đổi có giới hạn, nên phương án tốt nhất tìm thấy chưa chứng minh tối ưu.
Thực hành tiếp. Tải JSON của cấu hình, viết bộ chuyển đổi sang dữ kiện ASP và dùng Clingo để tạo một baseline riêng. Tệp LP dưới mô phỏng chỉ dành cho ví dụ 4 lớp.
Nhiều học phần hơn chưa chắc khó hơn một cấu hình nhỏ nhưng chật miền.
Bộ mẫu có ba mức, lần lượt 12/24/8/2, 40/80/20/3 và 200/270/45/3 theo thứ tự giảng viên, học phần, phòng, cơ sở. Hai mức đầu có 30 ca mỗi tuần, mức cuối có 36 ca. Đây là cấu hình tổng hợp để khám phá giao diện và quy tắc, chưa phải bộ đối sánh đại diện cho một trường cụ thể.
Nên tách thí nghiệm theo từng trục. Giữ số phòng và ca cố định khi tăng lớp để quan sát độ chật. Giữ số lớp cố định khi tăng cơ sở và thời gian di chuyển để đo ảnh hưởng phân tán địa lý. Tăng tỷ lệ lớp thực hành để khảo sát nút thắt phòng chuyên dụng. Nếu thay tất cả cùng lúc, khó xác định nguyên nhân của chênh lệch.
Ghi số lớp đã xếp, số vi phạm, điểm thành phần, thời gian dựng lịch, thời gian tìm kiếm và trạng thái kết thúc. Với phương pháp ngẫu nhiên cần nhiều lần chạy và seed; với bộ sinh hiện tại, cùng cấu hình cho dữ liệu xác định. Tách tập dùng chỉnh tham số khỏi tập đánh giá độc lập để giảm thiên lệch lựa chọn.
Bài tập. Tạo 80 học phần với 20, 12 rồi 8 phòng. Tải mỗi bộ JSON và ghi nhận phần nào bắt đầu thiếu tài nguyên. Không kết luận vô nghiệm chỉ vì thuật toán chưa xếp đủ lớp.
Đọc đúng trạng thái dừng và tìm tập điều kiện gây xung đột.
Nếu hai lớp đều buộc học cùng ca và chỉ có một phòng phù hợp, chúng không thể cùng được phục vụ. Ví dụ nhỏ “Vô nghiệm do phòng lab bị khóa ca” minh họa trường hợp miền ca của cả hai lớp chỉ chứa sáng thứ Hai. Bộ duyệt có thể kiểm tra hết miền để xác nhận không có lịch thỏa mãn mô hình này.
Ngược lại, tìm kiếm có giới hạn có thể dừng trước khi gặp lịch hợp lệ. Khi đó, thông báo đúng là “chưa tìm thấy”, kèm giới hạn đã dùng. Lịch khởi tạo có lớp chưa xếp không phải chứng cứ vô nghiệm. Một thứ tự xếp khác hoặc bộ giải khác có thể tìm được phương án.
Để chẩn đoán, lập danh sách phòng hợp lệ cho từng lớp, kiểm tra ca bận, rồi xem các lớp cạnh tranh cùng một nguồn lực. Nhóm điều kiện theo mã và thử nới từng nhóm trên bản sao dữ liệu. Khi có công cụ hỗ trợ, nghiên cứu unsat core hoặc tập ràng buộc xung đột tối tiểu; kết quả luôn gắn với cách mã hóa và giả thiết cụ thể.
Câu hỏi nghiên cứu. Lời giải thích “thiếu một phòng lab vào T2” có thể chuyển thành đề xuất đổi ca nào với chi phí thấp nhất, mà vẫn giữ các điều kiện bắt buộc khác?
Lưu cả dữ liệu, lịch và cấu hình để người khác kiểm tra lại kết luận.
Bộ kiểm tra nên nhận dữ liệu và lịch, xác nhận mỗi lớp có đúng một vị trí rồi kiểm tra miền ca, loại phòng, sức chứa, chồng lấn, ca bận và di chuyển. Sau đó tính lại điểm phạt từ lịch thay vì tin giá trị mà thuật toán gửi ra. Nên tách phần kiểm tra khỏi phần tìm kiếm để giảm nguy cơ hai phần cùng chia sẻ một lỗi suy luận.
Các ca kiểm thử biên quan trọng gồm sĩ số bằng sức chứa, hai buổi tiếp giáp, khoảng nghỉ đúng bằng số phút di chuyển, ca khác mã nhưng chồng lấn và hai chiều A→B/B→A khác nhau. Với kiểm thử biến hình, đổi tên mã phòng đồng nhất phải giữ tính khả thi; tăng sức chứa phòng không được tạo lỗi thiếu chỗ mới.
Nút tải JSON lưu dữ liệu kịch bản đang dùng, lịch hiện tại và trọng số. CSV phục vụ xem lịch theo dòng trong bảng tính. JSON là đầu vào thuận tiện để viết validator riêng. Có thể dùng nút Nhập JSON trong Kho dữ liệu xếp lịch để mở lại tệp, kiểm tra cấu trúc rồi chỉnh dữ liệu. Muốn lưu lên máy chủ và mở trên thiết bị khác, cần đăng nhập và chọn Lưu thành bản mới hoặc Cập nhật bản đang mở. Ghi thêm phiên bản chương trình, phần cứng, giới hạn chạy và cách sinh dữ liệu trong hồ sơ thực nghiệm.
Bài tập. Tải lịch có xung đột và lịch đã sửa, chạy một trình kiểm tra bên ngoài, rồi đối chiếu từng thông báo với bộ mô phỏng trên trang.
Tạo dữ liệu từ quy mô bộ môn tới 200 giảng viên. Đổi phòng, ca, cơ sở và thời gian di chuyển để kiểm tra tính khả thi.
Lưu dữ liệu, lịch và trọng số vào tài khoản. Có thể sửa, mở lại và khôi phục 20 phiên bản gần nhất.
Đang kết nối kho dữ liệu…
Chọn một phiên bản để đưa vào trình chỉnh sửa, sau đó bấm cập nhật để lưu thành phiên bản mới.
Số phút tối thiểu cho giảng viên và nhóm sinh viên giữa hai buổi liên tiếp cùng ngày. Hai chiều có thể khác nhau.
| Lớp học phần | Ca học | Phòng |
|---|
Đúng ca được phép, đúng loại phòng, đủ chỗ, không trùng phòng, giảng viên hay nhóm sinh viên. Kiểm tra ca bận của giảng viên, phòng bị khóa và thời gian di chuyển theo từng chiều giữa các cơ sở.
Thử toán nhanh, chơi chữ, giải mật mã hoặc tìm quy luật. Mỗi câu đố đều có gợi ý và lời giải để đối chiếu.
01 · TÍNH NHANH
Từ nhẩm tổng đến xác suất rút thẻ.
02 · CHƠI CHỮ
Tìm tiếng chung, chọn từ và giải câu đố về cách diễn đạt.
03 · GIẢI MÃ
Mở khóa thông điệp qua phép dịch chữ, đổi số và đọc theo cột.
04 · QUAN SÁT
Tìm phần còn thiếu trong dãy số, mũi tên và lưới ký hiệu.
01 · CÂU ĐỐ
02 · TRẮC NGHIỆM
03 · Ô SỐ
04 · TRÍ NHỚ
Lật hai thẻ mỗi lượt để tìm biểu tượng giống nhau. Ghép hết các cặp với ít lượt nhất có thể.
Đi tìm kho báu giữa rừng hoặc khám phá mê cung 3D. Chơi thử, thay thông số và đọc hướng dẫn để tự xây dựng game.
Canvas, vòng lặp game, vật phẩm, va chạm và AI thú rừng tìm đường bằng BFS.
Đọc hướng dẫn tạo game 2DWebGL, khối hộp, ánh sáng, phép chiếu phối cảnh và camera góc nhìn thứ nhất.
Đọc hướng dẫn tạo game 3D
Giảng viên Công nghệ thông tin · Trường Đại học Công nghệ Giao thông vận tải (UTT)
Tôi giảng dạy công nghệ thông tin và xây dựng học liệu thực hành. Trong các bài tập, tôi thường chọn một tình huống cụ thể để sinh viên tự phân tích yêu cầu, viết chương trình và kiểm tra kết quả.
Các học phần tôi đã giảng dạy gồm
Tôi cũng biên soạn học liệu về Kiểm thử phần mềm và Cấu trúc dữ liệu và giải thuật.
Xem Góc học liệuTôi nghiên cứu lập thời khóa biểu học phần và phân bổ nguồn lực ở đại học, với trọng tâm là mô hình hóa các ràng buộc về ca học, phòng, nhóm sinh viên và giảng viên.