vấn đề miền
Trước tiên, bạn phải hiểu được những vấn đề tên miền. Một giải pháp thanh lịch cho vấn đề sai lầm là không tốt, cũng không phải là một giải pháp không hiệu quả cho vấn đề đúng trong hầu hết các trường hợp. Chất lượng giải pháp, nói cách khác, thường là tương đối. Một vấn đề lập kế hoạch đơn giản có giải pháp xác định mất mười phút để chạy có thể tốt nếu lịch biểu được tính toán một lần mỗi tuần, nhưng nếu lịch thay đổi vài lần trong ngày thì giải pháp thuật toán di truyền hội tụ trong vài giây có thể được yêu cầu.
phân hủy và lập bản đồ
Thứ hai, phân hủy các vấn đề thành các vấn đề và biết/yếu tố chưa biết tương ứng với các yếu tố của giải pháp. Đôi khi điều này hiển nhiên, ví dụ: để đếm các vật dụng, bạn cần một cách để xác định các widget, một bộ đếm gia tăng, và một cách để lưu trữ số đếm. Đôi khi nó không phải là quá rõ ràng. Đôi khi bạn phải phân tích vấn đề, miền và các giải pháp có thể cùng một lúc và thử một số ánh xạ khác nhau giữa chúng để tìm ra kết quả chính xác [đây là phương pháp chung].
mô hình
Làm mẫu giải pháp, trong đầu của bạn ít nhất và đi qua nó để xem nó có hoạt động chính xác hay không. Điều chỉnh khi cần thiết (Xem phần phân tách và ánh xạ, ở trên).
thành phần/interfaces
Nhiều lần bạn có thể tìm thấy các yếu tố của vấn đề và các yếu tố của giải pháp mà bản đồ với nhau và tạo ra kết quả một phần hữu ích. Cấu trúc thành phần và giao diện này cung cấp phần tử của giải pháp và cũng giúp giảm phạm vi của vấn đề còn lại. Vì vậy, sau đó bạn chỉ cần lặp lại đầu trang với một vấn đề ban đầu nhỏ hơn, và đi qua nó một lần nữa.
kinh nghiệm
Kinh nghiệm là người thầy tốt nhất, tất nhiên, nhưng đọc về các loại khác nhau của các vấn đề và các giải pháp cũng sẽ rất hữu ích. Nghiên cứu một số thuật toán nổi tiếng và các ứng dụng của chúng cũng rất hữu ích, ví dụ: Dijkstra, Bresenham, Unification và tất nhiên là graph theory.
Nguồn
2009-02-21 23:09:20
+1 để tham khảo sách. Trông khá thú vị. – cletus