- axtarış sisteminin robot, indeks və sıralama ilə necə işlədiyini izah etmək
- AND, OR, NOT, mötərizə və dırnaqla sorğu yazmaq və sorğuları tapılan səhifələrin sayına görə düzmək
- iki və üç açar söz üçün Eyler–Venn diaqramı qurub daxiletmə–çıxarma düsturunu tətbiq etmək
- DİM-in axtarış sorğuları üzrə kodlaşdırılan tapşırıqlarını addım-addım həll etmək
Aysel Xəzər suitiləri haqqında layihə hazırlayır. Axtarış sisteminə «Xəzər» yazanda milyonlarla səhifə tapılır — hamısını oxumaq mümkün deyil. «Xəzər suitisi» yazanda nəticələr xeyli azalır, açar sözlərə «qorunması» sözünü də əlavə edəndə isə daha da azalır. Sorğunu düzgün qurmaq lazım olanı saatlarla yox, dəqiqələrlə tapmağa kömək edir. DİM-in qəbul imtahanında da bu mövzu yoxlanılır: 2025–2026-cı illərin dörd imtahanının üçündə kodlaşdırılan tapşırıq verilib — cədvəldə sorğular və tapılan səhifələrin sayı göstərilir, başqa bir sorğunun nəticəsini tapmaq lazımdır.
Axtarış sistemi necə işləyir
İstifadəçinin daxil etdiyi açar sözlərə görə internetdə uyğun veb-səhifələri tapan və onları siyahı şəklində göstərən xidmət. Məsələn: Google, Bing, Yandex.
Sorğu verildiyi anda axtarış sistemi bütün interneti gəzmir — bu, saatlar, hətta günlər çəkərdi. O, əvvəlcədən hazırlanmış indeksdə axtarır. İş belə gedir:
- 1Axtarış robotu səhifələri gəzir
Xüsusi proqram — axtarış robotu («hörümçək», krauler) — səhifədən səhifəyə istinadlar vasitəsilə keçir və hər səhifənin mətnini yükləyir.
- 2İndeksləmə
Hər söz üçün həmin sözün rast gəlindiyi səhifələrin siyahısı tərtib olunur. Bu, kitabın sonundakı əlifba göstəricisinə bənzəyir: «Nizami — səh. 12, 48, 95».
- 3Sorğunun emalı
Sorğudakı açar sözlər indeksdə tapılır, onların səhifə siyahıları məntiqi əməllərə uyğun olaraq kəsişdirilir və ya birləşdirilir.
- 4Sıralama
Tapılan səhifələr sorğuya uyğunluğuna görə düzülür: açar söz başlıqdadırmı, səhifəyə neçə sayt istinad edir və s. Nəticə səhifəsində təxmini say da göstərilir, məsələn, «təxminən 120 000 nəticə».
Deməli, hər açar söz müəyyən səhifələr çoxluğu verir: bu sözün rast gəlindiyi bütün səhifələr. Sorğudakı məntiqi əməllər isə bu çoxluqlar üzərində əməllərdir. Dərsin qalan hissəsi bu sadə fikrə əsaslanır.
Sorğu dili: AND, OR, NOT
Açar sözləri məntiqi əməllərlə birləşdirmək olar. DİM tapşırıqlarında əməllər ingiliscə yazılır — AND, OR, NOT; bəzi kitablarda onların yerinə &, | və ~ işarələri işlədilir. Bu əməlləri «Məntiq əməliyyatları və məntiq elementləri» dərsindən tanıyırsınız: indi onlar mülahizələrə yox, səhifə çoxluqlarına tətbiq olunur.
| Əməl | Yazılışı | Hansı səhifələr tapılır | Səhifələrin sayı |
|---|---|---|---|
| VƏ (kəsişmə) | A AND B, A & B | hər iki sözün olduğu səhifələr | azalır |
| VƏ YA (birləşmə) | A OR B, A | B | sözlərdən heç olmasa birinin olduğu səhifələr | artır |
| DEYİL (inkar) | A AND NOT B, A & ~B | A sözü olan, B sözü olmayan səhifələr | azalır |
| Dırnaq | "A B" | sözlərin məhz bu ardıcıllıqla yan-yana gəldiyi səhifələr | azalır |
Mötərizə olmayanda əvvəlcə NOT, sonra AND, ən sonda OR yerinə yetirilir. Məsələn, A OR B AND C sorğusu A OR (B AND C) deməkdir. Başqa ardıcıllıq lazımdırsa, mötərizə yazılır: (A OR B) AND C. Real axtarış sistemlərinin öz qaydaları da var: məsələn, Google-da boşluqla yazılan sözlər AND kimi birləşir, OR böyük hərflərlə yazılır, sözün qarşısındakı mənfi işarəsi (-reklam) həmin sözü istisna edir, dırnaq isə dəqiq ifadəni axtarır.
Axtarış serverinə dörd sorğu verilib:
1) şahmat OR dama
2) şahmat AND dama AND turnir
3) şahmat
4) şahmat AND turnir
Sorğuların nömrələrini tapılan səhifələrin sayının artma sırası ilə düzün.
Həllini göstərHəllini gizlət
2-ci sorğunun hər səhifəsində üç söz birdən var, deməli, «şahmat» və «turnir» də var: bu səhifələr 4-cü sorğunun nəticəsinin içindədir.
4-cü sorğunun hər səhifəsində «şahmat» var: bu, 3-cü sorğunun bir hissəsidir.
«şahmat» olan hər səhifə 1-ci sorğuya da düşür, 1-ci sorğuya isə «dama» olan səhifələr də əlavə olunur.
Deməli, 2 ⊆ 4 ⊆ 3 ⊆ 1.
Cavab: 2, 4, 3, 1.
Eyler–Venn diaqramları: iki açar söz
Hər açar sözün tapdığı səhifələri dairə ilə göstərək. Dairələrin ortaq hissəsi hər iki sözün olduğu səhifələrdir (AND), iki dairənin birlikdə tutduğu bütün sahə OR-un nəticəsidir, dairənin digər dairəyə düşməyən hissəsi isə NOT ilə alınır. Belə şəkil Eyler–Venn diaqramı adlanır.
A OR B sorğusunun səhifələrini saymaq üçün n(A) və n(B)-ni toplayanda ortaq hissə iki dəfə sayılır: o, həm A dairəsinin, həm də B dairəsinin içindədir. Ona görə onu bir dəfə çıxırıq:
- n(A), n(B)A və B sorğuları üzrə tapılan səhifələrin sayı
- n(A AND B)hər iki sözün olduğu səhifələrin sayı
- n(A OR B)sözlərdən heç olmasa birinin olduğu səhifələrin sayı
İki çoxluq üçün daxiletmə–çıxarma düsturu. Dörd kəmiyyətdən üçü məlumdursa, dördüncüsü tapılır.
- n(A AND NOT B)A sözü olan, amma B sözü olmayan səhifələrin sayı
A dairəsindən ortaq hissə çıxılır — B-nin hamısı yox!
Cədvəldə sorğular və tapılan səhifələrin sayı verilmişdir:futbol — 520voleybol — 380futbol OR voleybol — 760
a) futbol AND voleybol, b) futbol AND NOT voleybol, c) voleybol AND NOT futbol sorğuları üzrə neçə səhifə tapılar?
Həllini göstərHəllini gizlət
b) n(futbol AND NOT voleybol) = 520 − 140 = 380.
c) n(voleybol AND NOT futbol) = 380 − 140 = 240.
Yoxlama: üç hissənin cəmi 380 + 140 + 240 = 760 = n(futbol OR voleybol). ✓
1) n(A) = 250, n(B) = 400, n(A AND B) = 90. n(A OR B) = ?
2) n(A OR B) = 900, n(A) = 600, n(A AND B) = 150. n(B) = ?
3) n(A) = 330, n(B) = 270, n(A OR B) = 600. n(A AND B) = ? Bu nə deməkdir?
Həllini göstərHəllini gizlət
2) 900 = 600 + n(B) − 150 ⇒ n(B) = 900 − 600 + 150 = 450.
3) n(A AND B) = 330 + 270 − 600 = 0: ortaq səhifə yoxdur, dairələr kəsişmir.
Üç açar söz: DİM tapşırıqları
Üç açar söz olanda üç dairə diaqramı 7 hissəyə bölür. Hissələri nömrələyək və hər hissədəki səhifələrin sayını N₁, N₂, …, N₇ ilə işarə edək. Hər sorğu bu hissələrin bəzilərinin cəmidir — tapşırığın bütün sirri bundadır.
| Sorğu | Diaqramın hissələri |
|---|---|
A | 1 + 4 + 5 + 7 |
A AND B | 4 + 7 |
A AND B AND C | 7 |
(A OR B) AND C | 5 + 6 + 7 |
A AND NOT B | 1 + 5 |
A OR B OR C | 1 + 2 + 3 + 4 + 5 + 6 + 7 |
- n(A AND B AND C)üç sözün hamısının olduğu səhifələrin sayı (mərkəz, 7-ci hissə)
Üç çoxluq üçün daxiletmə–çıxarma düsturu: cütlərin kəsişmələri çıxılanda mərkəz üç dəfə çıxılır, ona görə bir dəfə geri əlavə olunur.
- 1Diaqram çəkin
Açar sözlər qədər dairə çəkin və hissələri nömrələyin.
- 2Cədvəli hissələrlə yazın
Cədvəlin hər sətrini hissələrin cəmi kimi yazın, məsələn: n(B AND C) = N₆ + N₇.
- 3Mərkəzdən başlayın
Ən dar sorğudan (adətən üç sözün AND-i) başlayın və hissələri içəridən çölə doğru tapın.
- 4Soruşulan sorğunu hissələrlə yazın
Hansı hissələrin cəmi lazım olduğunu müəyyən edin və hesablayın.
- 5Yoxlayın
Heç bir hissə mənfi olmamalıdır; mümkünsə cavabı düsturla da yoxlayın.
Cədvəldə sorğular və axtarış serverinin tapdığı səhifələrin sayı verilmişdir:(kitab OR jurnal) AND poeziya — 540kitab AND poeziya — 310jurnal AND poeziya — 290kitab AND jurnal AND poeziya sorğusu üzrə neçə səhifə tapılar?
Həllini göstərHəllini gizlət
n(kitab AND poeziya) = N₅ + N₇ = 310
n(jurnal AND poeziya) = N₆ + N₇ = 290
n((kitab OR jurnal) AND poeziya) = N₅ + N₆ + N₇ = 540
İlk iki bərabərliyi toplasaq, N₇ iki dəfə sayılır: (N₅ + N₇) + (N₆ + N₇) = 600.
Deməli, N₇ = 600 − 540 = 60.
Cavab: 60.
Cədvəldə sorğular və tapılan səhifələrin sayı verilmişdir:Xəzər AND neft AND qaz — 90neft AND qaz — 230Xəzər AND qaz — 170(Xəzər OR neft) AND qaz sorğusu üzrə neçə səhifə tapılar?
Həllini göstərHəllini gizlət
N₇ = 90 (üç sözün hamısı).
n(neft AND qaz) = N₆ + N₇ = 230 ⇒ N₆ = 140.
n(Xəzər AND qaz) = N₅ + N₇ = 170 ⇒ N₅ = 80.
n((Xəzər OR neft) AND qaz) = N₅ + N₆ + N₇ = 80 + 140 + 90 = 310.
Qısa yol: 170 + 230 − 90 = 310 — bu, C dairəsinin içində iki dairə üçün daxiletmə–çıxarma düsturudur.
Cavab: 310.
Cədvəldə sorğular və tapılan səhifələrin sayı verilmişdir:A — 400B — 500C — 300A OR B OR C — 970A AND B — 100A AND C — 70A AND B AND C — 30B AND NOT C sorğusu üzrə neçə səhifə tapılar?
Həllini göstərHəllini gizlət
B AND NOT C — B dairəsinin C-yə düşməyən hissəsidir: N₂ + N₄.Bütün diaqram 970-dir. C dairəsini (300) çıxsaq, N₁ + N₂ + N₄ = 970 − 300 = 670 qalır.
İndi N₁-i (yalnız A) tapaq: N₇ = 30; N₄ = 100 − 30 = 70; N₅ = 70 − 30 = 40; N₁ = 400 − 70 − 40 − 30 = 260.
Deməli, N₂ + N₄ = 670 − 260 = 410.
Diqqət:
B AND C cədvəldə verilməyib, amma ona ehtiyac da yoxdur.Cavab: 410.
Sorğu əməlləri Python-dakı çoxluq əməllərinə tam uyğundur: & — AND, | — OR, - — AND NOT. Kiçik nümunədə düsturu özünüz yoxlayın (səhifələr nömrələrlə göstərilib):
football = {1, 2, 3, 4, 5, 6, 7}
volleyball = {5, 6, 7, 8, 9}
basketball = {2, 7, 9, 10}
print('football AND volleyball:', sorted(football & volleyball))
print('football OR volleyball:', sorted(football | volleyball))
print('football AND NOT volleyball:', sorted(football - volleyball))
print('(football OR volleyball) AND basketball:',
sorted((football | volleyball) & basketball))
# inclusion-exclusion: n(A OR B) = n(A) + n(B) - n(A AND B)
n_or = len(football) + len(volleyball) - len(football & volleyball)
print(n_or, len(football | volleyball))▸ Gözlənilən nəticə
football AND volleyball: [5, 6, 7] football OR volleyball: [1, 2, 3, 4, 5, 6, 7, 8, 9] football AND NOT volleyball: [1, 2, 3, 4] (football OR volleyball) AND basketball: [2, 7, 9] 9 9
- 1.n(A) = 300, n(B) = 200, n(A AND B) = 50. n(A OR B) =
- 2.n(A) = 300, n(A AND B) = 50. n(A AND NOT B) =
- 3.n((A OR B) AND C) = 400, n(A AND C) = 250, n(B AND C) = 230. n(A AND B AND C) =
- 4.n(A AND B AND C) = 40, n(A AND C) = 150, n(B AND C) = 110. n((A OR B) AND C) =
Əsas fikirlər
- Axtarış sistemi internetin özündə yox, robotların əvvəlcədən topladığı indeksdə axtarır.
- AND səhifələrin sayını azaldır (kəsişmə), OR artırır (birləşmə), NOT istisna edir; mötərizə olmayanda ardıcıllıq: NOT, AND, OR.
- n(A OR B) = n(A) + n(B) − n(A AND B); n(A AND NOT B) = n(A) − n(A AND B).
- Üç açar söz diaqramı 7 hissəyə bölür; hər sorğu bu hissələrin cəmidir.
- DİM tapşırığında mərkəzdən (üç sözün AND-i) başlayın, içəridən çölə doğru hesablayın və heç bir hissənin mənfi olmadığını yoxlayın.
Özünü yoxla
12 sual. Hər düzgün cavab XP qazandırır.