Re: [Linux-programlama] 2 bitlik

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Ergin ALTINTAS (ealtintas@gmail.com)
Date: Mon 29 Aug 2005 - 14:39:53 EEST


Bence hem hız hem de yer kazancı sağlanabilir. Fakat kullanım
kolaylığı azalacaktır. Elinizdeki 1000 adet 2 şer bitlik DNA kodunu
bir bayt içerisine 4 tane DNA kodu girecek şekilde düzenleyin.
Üzerinde tarama yapılacak olan kodu da aynı şekilde düzenleyin. En
büyük sorun elinizdeki kodları 4 ün katları olarak düzenlemeniz
gekemesi. 1000 DNA için 250 byte yeterli oluyor. Fakat eğer 1001 adet
DNA nız var ise sondaki DNA yı ayrı bir byte içinde tutmalısınız. Daha
sonra standart srtcmp() fonksiyonu veya benzeri bir fonks. ile
karşılaştırmanızı yapabilirsiniz. Bu adım toplam karşılaştırma işinin
4 te birine denk gelecektir. Bir sonraki karşılaştırma adımında,
elinizdeki anahtar (ARANAN) DNA kodlarını temsil eden tüm baytları 2
bit sağa kaydırmanız gerekecek. Sonra tekrar strcmp() yapacaksınız.
Sonra tekrar 2 bit kayıdıracak ve vb.. toplam 3 kaydırma yaptığınızda.
Tüm karşılaştırmalarınız tamamlanmış olur. Karşılaştırmlarınızı bit
bazında değil de bayt bazında yaptığınız için hem hızdan hem de yerden
kazanırsınız. Ancak strcmp() komutu tek bit (veya iki bit) farklı
olduğunda tüm byte ın farklı olduğunu varsayar. Dolayısıyla
hassasiyetinizden kaybedersiniz. Yani bir DNA kodunun farklı olması
aynı bayt içindeki diğer 3 DNA kodunun da farklı olması şeklinde
yorumlanacaktır. Eğer bu hassasiyet sizin için yeterli ise DNA
kodlarınızı bir bayta 4 tane sığacak şekilde düzenleyebilirsiniz. Eğer
bu hassasiyet sizin için yeterli değilse. DNA kodularınızı bir bayta 4
tane girecek şekilde düzenlemek size zaman kazandırmaz, tersine
işlemler umutun da dediği gibi çevirmelerden dolayı daha yavaş
olacaktır, fakat sadece yerden %75 kazanabilirsiniz.

On 8/29/05, Bora Güngören <bora@boragungoren.com> wrote:
>
> Merhaba,
>
> Elimizde 8 milyar bit lik alan olsun. Ben bunu 1 milyar char yada 4 milyar
> adet 2 bitlik bit alanı ile saklayabilirim. Ve "bellekte" tamamen aynı
> şekilde organize olurlar. Yani aynı alanı kaplarlar :-)
>
> Belleğe yüklenmesi, işlenmesi, bit karşılaştırma için yazılmış API'lerin
> (char*) yani char dizisi işleyeceğini düşünürsek, "işlem hızı" tarafında
> char kullanımı daha hızlı bile olabilir. Bunu daha detaylı açıklayan
> mesajlar yazılmıştı.
>
> "Veri madenciliği" amacı ile kurulacak olan algoritmalar (vaktiyle
> yazmışlığım var) ağırlıklı olarak bellekte çalışacaktır ve sistemin
> darboğazını oluşturacaktır. Bu nedenle veri tabanı yönetim sistemi seçimi
> bile (duruma göre) önemsiz olabilir.
>
> Bora Güngören.

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.