Popis programovΘho systΘmu DELTA.

Smysl programu vychßzφ z nßsledujφcφ situace. Pot°ebuji dopravit na mφsto urΦenφ novou verzi rozsßhlΘho (datovΘho nebo exe) souboru. V souboru doÜlo oproti p°edchozφ verzi k °ad∞ zm∞n. Pokud p°φjemce mß k dispozici p°edchozφ verzi souboru, je v∞tÜinou v²hodn∞jÜφ poslat informaci o tom, jak z p∙vodnφho souboru ôposklßdatö novou verzi, ne₧ dopravovat cel² soubor nov². Informace o sestavenφ novΘho souboru ze starΘho m∙₧e b²t podle konkrΘtnφ situace i velmi podstatn∞ kratÜφ ne₧ nov² soubor.

Program DELTA dokß₧e porovnat dva soubory - ôp∙vodnφö s ônov²mö û a vytvo°it soubor informacφ o rozdφlech a shodn²ch ·secφch (diferenΦnφ soubor). V²sledn² soubor m∙₧e b²t vytvo°en ve dvou r∙zn²ch variantßch a to bu∩ jako datov², nebo jako EXE soubor.

Znovuvytvo°enφ novΘho souboru je mo₧nΘ provΘst n∞kolika zp∙soby:

V prvnφm i v druhΘm p°φpad∞ lze pro znovuvytvo°enφ pou₧φt diferenΦnφ soubor jak ve tvaru datovΘho souboru tak ve tvaru EXE souboru.

Obr. 1 û Vytvo°enφ diferenΦnφho souboru.

Program DELTA

Vytvo°enφ diferenΦnφho souboru

Obr. 2 û Statistika po vytvo°enφ diferenΦnφho souboru.

Zp∞tnΘ vytvo°enφ novΘho souboru

 

Program SUMA

Program SUMA plnφ stejnou funkci jako v²Üe uvedenΘ tlaΦφtko v programu DELTA. Rozdφl je jen v tom, ₧e SUMA je DOSovsk² program a parametry jsou zadßvßny z p°φkazovΘho °ßdku. Volßnφ se provßdφ p°φkazem:

SUMA star²_soubor diferenΦnφ_soubor [nov²_soubor],

kde v²znam parametr∙ je op∞t z°ejm². Pokud nenφ zadßno jmΘno novΘho souboru, bude po procesu vytvo°enφ starΘmu souboru p°id∞lena p°φpona .OLD a nov² soubor se bude jmenovat stejn∞ jako star² soubor.

Nap°φklad:

SUMA DATA.TXT DATA.DIF NOVADATA.TXT

Pomocφ souboru DATA.DIF se z p∙vodnφho souboru DATA.TXT vytvo°φ nov² soubor NOVADATA.TXT.

SUMA DATA.TXT DATA.DIF

Pomocφ souboru DATA.DIF se z p∙vodnφho souboru DATA.TXT vytvo°φ nov² soubor, kter² se bude rovn∞₧ jmenovat DATA.TXT, a star² soubor se p°ejmenuje na DATA.OLD.

DiferenΦnφ soubor jako EXE program

Tento program plnφ stejnou funkci jako program SUMA. Jedin² rozdφl je v tom, ₧e nenφ nutnΘ zadßvat druh² parametr, kter²m je nßzev diferenΦnφho souboru, proto₧e tato data jsou obsa₧ena p°φmo ve vytvo°enΘm programu. SpuÜt∞nφ se tak provßdφ:

JmΘno_programu star²_soubor [nov²_soubor]

 

 

SouΦasnß omezenφ:

Maximßlnφ poΦet nalezen²ch shodn²ch interval∙ m∙₧e b²t nejv²Üe 1000.

 

 

Obr. 3 û Logo.

 

Poznßmky k algoritmu.

Pokud by program vyhledßval shodnΘ ·seky ôbyte po byteö byla by doba zpracovßnφ ji₧ p°φpad∞ nep°φliÜ velk²ch program∙ ne·m∞rn∞ dlouhß. Program DELTA proto vyu₧φvß pro urychlenφ prßce r∙znΘ heuristiky. Tφm ale m∙₧e nastat situace, ₧e nebudou nalezeny zcela vÜechny vhodnΘ shodnΘ ·seky. Zßkladnφ princip prßce je nßsledujφcφ. Program vezme ·sek zadanΘ velikosti z ônovΘhoö souboru a hledß, zda se vyskytuje v souboru ôp∙vodnφmö.

Po skonΦenφ vyhledßvßnφ se vytvo°φ v²stupnφ ôdiferenΦnφö soubor tak, ₧e se (za informace o CRC) zapφÜφ informace o shodn²ch ·secφch, dopln∞nΘ o sekvence znak∙, kterΘ v p∙vodnφm souboru nalezeny nebyly.

Matematicky vzato, je-li M zadanß dΘlka ·seku a N je dΘlka shodnΘho ·seku v ônovΘmö souboru, pak pravdpodobnost (p), ₧e prßv∞ tento ·sek se bude vyhledßvat v ôp∙vodnφmö souboru je

╚ili nenφ otßzkou zda se shodn² ·sek v p∙vodnφm souboru nalezne (pokud tam existuje pak se urΦit∞ nalezne), ale otßzkou je, zda se k vyhledßvßnφ vybere. V²Üe uvedenΘ vzoreΦky tedy °φkajφ, ₧e je-li shodn² ·sek menÜφ ne₧ zadan², pak se urΦit∞ nevybere k vyhledßnφ, je-li dvojnßsobn∞ velk² nebo v∞tÜφ, pak se urΦit∞ vybere (a tedy i nalezne) a v p°φpad∞, ₧e je mezi M a 2*M pak je vybrßn k vyhledßvßnφ s v²Üe uvedenou pravd∞podobnostφ.

Ji°φ Ventluka,

jive@vol.cz

Praha, 10. 3. 1999