Motivasyon : Veri sürümü oluşturma araçları geliştirirken, bir tamsayı kümesini diğerine götüren bir dönüşüm dizisi oluşturarak iki tamsayı kümesini "ayırmak" için algoritmalar aradık. Bu sorunu mesafeyi düzenlemek, takas ile gruplamak ve minimum ortak dize bölümü gibi görünen çok doğal soruna indirgedik .
Sorun : Bize bir dize, yani bir dizi harf veriliyor ve amacımız onu minimum maliyetle homojenleştirmek . Yani, benzer tüm harfler yan yana olacak şekilde yeniden düzenlenmiş bir sıra istiyoruz.
İzin verilen tek işlem , benzer harflerin bir dizisini almak ve bu diziyi herhangi bir yere taşımak ve bana 1 birim maliyeti.
Bu sorunun karmaşıklığını karakterize eden herhangi bir yardım çok takdir edilecektir!
Örnek :
- aabcdab: Giriş
- bcd aa ab: İlk aa'yı "d" den hemen sonraki konuma taşıdıktan sonra
- b bcdaaa: Sondaki b'yi ilk konuma getirdikten sonra
Ortaya çıkan dize homojen olduğu için 2 maliyetimiz var.
Çıktı ile ilgili olarak hiçbir şekilde kısıtlanmadığımızı unutmayın: homojen olduğu sürece, herhangi bir özel sipariş sağlamamız gerekmiyor.