Kupata utegemezi wa utendaji kazi katika data hutumika katika maeneo mbalimbali ya uchanganuzi wa data: usimamizi wa hifadhidata, utakaso wa data, uhandisi wa kinyume wa hifadhidata, na uchunguzi wa data. Tayari tumechapisha kuhusu utegemezi wenyewe. Anastasia Birillo na Nikita Bobrov. Wakati huu, Anastasia, mhitimu wa Kituo cha Sayansi ya Kompyuta mwaka huu, anashiriki maendeleo ya mradi huu wa utafiti, ambao aliutetea katika kituo hicho.

Uchaguzi wa kazi
Nilipokuwa nikisoma katika Kituo cha CS, nilianza kusoma hifadhidata kwa kina, haswa, kutafuta utegemezi wa utendaji kazi na tofauti. Mada hii ilihusiana na kozi yangu ya chuo kikuu, kwa hivyo nilipokuwa nikiifanyia kazi, nilianza kusoma makala kuhusu utegemezi mbalimbali katika hifadhidata. Niliandika mapitio ya uwanja huu—mojawapo ya sehemu yangu ya kwanza kwa Kiingereza na kuiwasilisha kwenye mkutano wa SEIM-2017. Nilifurahi sana ilipokubaliwa na kuamua kuzama zaidi katika mada hiyo. Wazo lenyewe si jipya—limekuwapo tangu miaka ya 90—lakini bado linatumika katika nyanja nyingi leo.
Katika muhula wangu wa pili katika kituo hicho, nilianza mradi wa utafiti ili kuboresha algoriti za kutafuta utegemezi wa utendaji. Nilifanya kazi juu yake na Nikita Bobrov, mwanafunzi aliyehitimu katika Chuo Kikuu cha Jimbo la St. Petersburg, katika Utafiti wa JetBrains.
Ugumu wa kompyuta wa kutafuta utegemezi wa utendaji kazi
Tatizo kuu ni ugumu wa kihesabu. Idadi ya utegemezi mdogo na usio wa kawaida hupunguzwa kutoka hapo juu na
Ambapo
— idadi ya sifa za jedwali. Muda wa utekelezaji wa algoriti hautegemei tu idadi ya sifa bali pia idadi ya safu mlalo. Katika miaka ya 90, algoriti za kugundua sheria ya shirikisho kwenye PC ya kawaida ya eneo-kazi zingeweza kuchakata seti za data zenye hadi sifa 20 na makumi ya maelfu ya safu mlalo kwa hadi saa kadhaa. Algoriti za kisasa zinazoendeshwa kwenye vichakataji vya msingi vingi hugundua utegemezi wa seti za data zenye mamia ya sifa (hadi 200) na mamia ya maelfu ya safu mlalo kwa takriban wakati mmoja. Hata hivyo, hii haitoshi: muda kama huo haukubaliki kwa programu nyingi za ulimwengu halisi. Kwa hivyo, tuliunda mbinu za kuharakisha algoriti zilizopo.
Mipango ya kuhifadhi data kwa makutano ya kizigeu
Katika sehemu ya kwanza ya karatasi, tulitengeneza mipango ya kuhifadhi data kwa darasa la algoriti kwa kutumia mbinu ya makutano ya kizigeu. Kizigeu cha sifa ni seti ya orodha, ambapo kila orodha ina nambari za safu mlalo zenye thamani sawa za sifa iliyotolewa. Kila orodha kama hiyo inaitwa nguzo. Algoriti nyingi za kisasa hutumia vizigeu kubaini kama utegemezi unashikilia, yaani, zinafuata lemma ifuatayo: Utegemezi
huhifadhiwa ikiwa
. Hapa
Kizigeu kinaonyeshwa na , na dhana ya ukubwa wa kizigeu—idadi ya makundi ndani yake—inatumika. Algorithimu zinazotumia vizigeu huongeza sifa za ziada upande wa kushoto wa utegemezi wakati utegemezi unakiukwa, kisha huhesabu upya kwa kufanya operesheni ya makutano ya kizigeu. Operesheni hii inatajwa katika makala kama utaalamu. Hata hivyo, tumebainisha kuwa vizigeu vya utegemezi ambavyo vitahifadhiwa tu baada ya raundi kadhaa za utaalamu vinaweza kutumika tena kikamilifu, jambo ambalo linaweza kupunguza kwa kiasi kikubwa muda wa uendeshaji wa algorithimu, kwani operesheni ya makutano ni ghali.
Kwa hivyo, tulipendekeza heuristic kulingana na Shannon entropy na Gini kutokuwa na uhakika, pamoja na kipimo chetu wenyewe, ambacho tunakiita Inverse Entropy. Ni marekebisho kidogo ya Shannon entropy na huongezeka kadri upekee wa seti ya data unavyoongezeka. Heuristic iliyopendekezwa ni kama ifuatavyo:

Hapa
— kiwango cha upekee wa kizigeu kilichohesabiwa hivi karibuni
Na
ni wastani wa digrii za upekee kwa sifa za mtu binafsi. Vipimo vyote vitatu vilivyoelezwa hapo juu vilijaribiwa kama vipimo vya upekee. Inaweza pia kuzingatiwa kuwa heuristic inajumuisha virekebishaji viwili. Ya kwanza inaonyesha jinsi kizigeu cha sasa kilivyo karibu na ufunguo mkuu na inaruhusu uhifadhi mkubwa wa vizigeu mbali na ufunguo wa mgombea. Kirekebishaji cha pili hufuatilia umiliki wa kashe, na hivyo kuhimiza kuongezwa kwa vizigeu zaidi kwenye kashe wakati nafasi inapatikana. Kutatua tatizo hili kwa mafanikio kuliruhusu algoriti ya PYRO kuharakisha kwa 10-40% kulingana na seti ya data. Inafaa kuzingatia kwamba algoriti ya PYRO ndiyo iliyofanikiwa zaidi katika eneo hili.
Mchoro ulio hapa chini unaonyesha matokeo ya kutumia mbinu ya heuristic iliyopendekezwa ikilinganishwa na mbinu ya msingi ya kuhifadhi data kulingana na mizunguko ya sarafu. Mhimili wa x ni wa logarithmic.

Njia mbadala ya kuhifadhi vizuizi
Kisha tulipendekeza njia mbadala ya kuhifadhi vizigeu. Vizigeu ni seti ya makundi, ambayo kila moja huhifadhi nambari za vizigeu zenye thamani zinazofanana kwa sifa fulani. Makundi haya yanaweza kuwa na mfuatano mrefu wa nambari za vizigeu, kwa mfano, ikiwa data kwenye jedwali imepangwa. Kwa hivyo, tulipendekeza mpango wa kubana kwa ajili ya kuhifadhi vizigeu, yaani, uhifadhi wa muda wa thamani katika makundi ya vizigeu:
$$display$$pi(X) = {{kiunganishi cha chini{1, 2, 3, 4, 5}_{Kipindi cha kwanza~cha}, kiunganishi cha chini{7, 8}_{Kipindi cha pili~cha}, 10}}\ mshale wa chini{Ukandamizaji}\ pi(X) = {{kiunganishi cha chini{$, 1, 5}_{Kipindi cha kwanza~cha}, kiunganishi cha chini{7, 8}_{Kipindi cha pili~cha}, 10}}$$display$$
Njia hii iliweza kupunguza matumizi ya kumbukumbu wakati wa utekelezaji wa algoriti ya TANE kwa 1 hadi 25%. Algoriti ya TANE ni algoriti ya kawaida ya kutafuta maeneo ya kimantiki; hutumia vizuizi wakati wa uendeshaji wake. Kwa madhumuni ya vitendo, algoriti ya TANE ilichaguliwa kwa sababu kutekeleza uhifadhi wa muda ilikuwa rahisi zaidi kuliko, kwa mfano, katika PYRO kutathmini uwezekano wa mbinu iliyopendekezwa. Matokeo yanawasilishwa katika mchoro ulio hapa chini. Mhimili wa x ni wa logarithmic.

Mkutano wa ADBIS-2019
Kulingana na matokeo ya utafiti, nilichapisha makala mnamo Septemba 2019. Katika Mkutano wa 23 wa Ulaya kuhusu Maendeleo katika Hifadhidata na Mifumo ya Habari (ADBIS-2019), kazi hiyo ilitambuliwa na Bernhard Thalheim, mtu mashuhuri katika uwanja wa hifadhidata. Matokeo ya utafiti yaliunda msingi wa tasnifu yangu kwa mpango wa Shahada ya Uzamili katika Kitivo cha Hisabati na Mekaniki katika Chuo Kikuu cha Jimbo la St. Petersburg, ambapo mbinu zote mbili zilizopendekezwa (kuhifadhi kumbukumbu na kubana) zilitekelezwa katika algoriti zote mbili: TANE na PYRO. Matokeo yalionyesha kuwa mbinu zilizopendekezwa ni za ulimwengu wote, kwani algoriti zote mbili zilionyesha kupungua kwa kiasi kikubwa kwa matumizi ya kumbukumbu na kupungua kwa kiasi kikubwa kwa muda wa utekelezaji.
Chanzo: mapenzi.com
