Tôi có một ứng dụng tạo hình ảnh ngẫu nhiên dựa trên các ràng buộc. Các pixel màu khác nhau được chọn ngẫu nhiên và được đặt trong một lưới đáp ứng tất cả các ràng buộc. Ví dụ (đơn giản hóa), có thể có một ràng buộc cho biết nếu một pixel màu xanh hoặc màu xanh lá cây là (0, -1) và pixel màu đỏ là (-1, -1) và (-1, 0), sau đó đặt một điểm ảnh màu trắng bị cấm. Các toạ độ này là các vectơ từ vị trí hiện tại (tức là vùng lân cận).Cấu trúc dữ liệu để nhận dạng mẫu dựa trên pixel
Ngay bây giờ tôi đang lưu trữ các ràng buộc trong một mảng và lặp qua chúng, kiểm tra xem mỗi loại có áp dụng hay không. Tôi phải làm điều này cho mỗi pixel tôi đặt trong lưới. Vì vậy, hiệu suất bị hạn chế thêm. Ngoài ra, có thể có hai ràng buộc trong xung đột nhưng không dễ để kiểm tra điều đó. Tôi nghĩ rằng cấu trúc dữ liệu kiểu biểu đồ (cây?) Có thể là cách để lưu trữ tất cả các ràng buộc sao cho tôi có thể nhanh chóng xác định từ vùng lân cận pixel mà (nếu có) các ràng buộc áp dụng. Nhưng tôi không thể tìm ra cách để tạo ra một cấu trúc như vậy, với điều kiện một tọa độ duy nhất có thể chứa nhiều màu sắc và cách kết hợp một tập hợp các tọa độ/màu để thiết lập các màu pixel bị cấm. Ý tưởng nào?
Cảm ơn! Điều này có vẻ đúng hướng để theo đuổi. Tôi chưa bao giờ nghe nói về cắt giảm đồ thị trước đây. – jasonm76