2011-01-29 20 views
7

Normalde, karma işlemenin amacı sürekli bir işlevi ayrı bir noktaya çevirmektir: girişteki küçük bir değişiklik, çıkışta büyük bir değişikliğe neden olmalıdır. Ancak, (çok) kabaca konuşma, benzer girdiler için benzer ama (hala farklı) karma dönüşler yapacak herhangi bir karma algoritma var mıdır?Karma Benzerlik

(bunun kullanımının bir örneği iki dosya benzerlik onların karmaları kontrol ederek "benzer" olup olmadığını kontrol etmek olacaktır. Tabii ki, bazı başarısızlık her zaman kabul edilebilir.)

+0

"Benzer" i nasıl tanımlarsınız? – thkala

+0

Aynı mertebede yaklaşık aynı uzunluktaki ve yaklaşık aynı verilerdeki iki akış benzer kabul edilecektir. ("Bu ikisi benzer mi?" Demesi gerekmiyor, fakat bir çeşit sayı derecelendirme sistemi gibi bir şey değil. Örneğin, [1, 2, 3, 4] daha benzer olabilir. [1, 2, 3] 'e [4, 3, 2, 1] ...) – Mehrdad

+0

Bir karma işlevinin tüm noktası, girişin herhangi bir bitindeki bir değişikliğin Çıktının * her * bitinin değiştirilmesi. – Pointy

cevap

10

Bak Locality Sensitive Hashing (LSH) de . Örneğin, belirli bir noktaya yakın bir noktada bir puan bulmanın olasılıksal bir yolu budur.

+0

+1 tam olarak aradığım şey gibi görünüyor ... Aranacak terimleri bilmiyordum; Teşekkürler! :) – Mehrdad

İlgili konular