Ban đầu, matroids đã được giới thiệu khái quát các khái niệm về độc lập tuyến tính của một bộ sưu tập các tập con trên một số mặt đất được đặt . Một số vấn đề có chứa cấu trúc này cho phép các thuật toán tham lam tìm ra giải pháp tối ưu. Khái niệm về greedoids sau đó đã được giới thiệu để khái quát cấu trúc này để nắm bắt nhiều vấn đề hơn cho phép tìm ra giải pháp tối ưu bằng các phương pháp tham lam.
Làm thế nào thường làm các cấu trúc phát sinh trong thiết kế thuật toán?
Hơn nữa, thường xuyên hơn không phải là một thuật toán tham lam sẽ không thể nắm bắt đầy đủ những gì cần thiết để tìm giải pháp tối ưu, nhưng vẫn có thể tìm thấy các giải pháp gần đúng rất tốt (ví dụ như Bin Đóng gói). Cho rằng, có cách nào để đo lường mức độ "gần gũi" của một vấn đề đối với một kẻ tham lam hay matroid không?