Động lực : Trong khi phát triển các công cụ để tạo phiên bản dữ liệu, cuối cùng chúng tôi đã xem xét các thuật toán để "tìm" hai bộ số nguyên, bằng cách đưa ra một chuỗi các phép biến đổi lấy một bộ số nguyên khác. Chúng tôi đã có thể giảm vấn đề đó thành vấn đề rất tự nhiên sau đây dường như có các kết nối để chỉnh sửa khoảng cách, nhóm bằng cách hoán đổi và phân vùng chuỗi chung tối thiểu .
Vấn đề : Chúng tôi được cung cấp một chuỗi, tức là một chuỗi các chữ cái và mục tiêu của chúng tôi là đồng nhất hóa nó với chi phí tối thiểu. Đó là, chúng tôi muốn một chuỗi được sắp xếp lại sao cho tất cả các chữ cái giống nhau nằm cạnh nhau.
Hoạt động duy nhất được phép là chọn một chuỗi các chữ cái giống nhau và di chuyển chuỗi đó ở bất cứ đâu và chi phí cho tôi là 1 đơn vị.
Bất kỳ trợ giúp đặc trưng cho sự phức tạp của vấn đề này sẽ được nhiều đánh giá cao!
Ví dụ :
- aabcdab: Đầu vào
- bcd aa ab: Sau khi di chuyển aa đầu tiên đến vị trí ngay sau "d"
- b bcdaaa: Sau khi di chuyển dấu b đến vị trí đầu tiên
Vì chuỗi kết quả là đồng nhất, chúng tôi có chi phí là 2.
Lưu ý rằng chúng tôi không bị hạn chế theo bất kỳ cách nào đối với đầu ra: miễn là nó đồng nhất, chúng tôi không cần phải đảm bảo bất kỳ thứ tự cụ thể nào.