3NF dekompozitsiya algoritmining kamchiliklari.Parchalanish algoritmining natijasi yagona aniqlanmagan, chunki funktsional bog'liqliklar to'plami bir nechta kanonik qopqoqni o'z ichiga olishi mumkin.
Ba'zi hollarda algoritmning natijasi F c dagi bog'liqliklarni ko'rib chiqish tartibiga bog'liq .Agar berilgan munosabat uchinchi normal shaklda allaqachon mavjud bo'lsa, u munosabatni ham buzishi mumkin.
Dekompozitsiya va abstraktsiya Parchalanishmurakkab muammo yoki tizimni tahlil qilish va uni boshqarish mumkin bo'lgan va tushunish oson bo'lgan kichikroq qismlarga ajratishni o'z ichiga oladi. Keyinchalik kichikroq qismlar tekshirilishi va echilishi yoki alohida ishlab chiqilishi mumkin, chunki ular bilan ishlash osonroq.
Agar muammo hal qilinmasa, uni hal qilish ancha qiyin. Murakkab muammoni hal qilish muammoni kichik muammolarga ajratish va ularni birma-bir hal qilishdan ko'ra qiyinroqdir. Kichikroq muammolarni tushunish osonroq va batafsilroq ko'rib chiqilishi mumkin.
Masalan, jinoyat sodir etildi, deylik. Jinoyatni ochish juda murakkab muammo bo'lishi mumkin, chunki ko'p narsalarni hisobga olish kerak.
Politsiya xodimi bir qator kichikroq muammolarga javobni bilishi kerak:
agar yaqinda shunga o'xshash jinoyatlar sodir bo'lgan bo'lsa
Hozirgi vaqtda sodir etilgan jinoyatning murakkab muammosi alohida, batafsil ko'rib chiqilishi mumkin bo'lgan oddiyroq muammolarga bo'lingan. Shaxsiy ma'lumotlar to'plangan va to'planganidan keyin politsiya xodimi jinoyatni ochishi mumkin.
Abstraktsiya.AbstraktsiyaE'tiborni kerakli narsalarga qaratish uchun kerak bo'lmagan muammolarning xususiyatlarini e'tiborsiz qoldirish - filtrlash jarayonidir. Bu, shuningdek, aniq tafsilotlarni filtrlashdir. Shundan kelib chiqib, nima hal qilinishi kerakligi haqidagi fikrni yaratish mumkin.
Abstraktsiya dasturchilarga muammo nima va uni qanday hal qilish haqida umumiy tasavvur hosil qilish imkonini beradi. Jarayon ularga barcha aniq tafsilotlarni va yechim topishga yordam bermaydigan naqshlarni olib tashlashni buyuradi. Shundan so'ng muammo haqida fikr shakllantirilishi mumkin. Ushbu g'oya "model" sifatida tanilgan.
Har qanday to'rtburchakning maydonini hisoblash uchun qanday dastur kerak bo'lishi mumkinligi masalasini ko'rib chiqing. Barcha to'rtburchaklar umumiy xususiyatlarga ega:
maydonni hisoblash uchun formula: maydon = kenglik × balandlik
Mavhumlashtirishda ba'zi tafsilotlar o'chiriladi, ammo boshqalar saqlanadi:barcha to'rtburchaklar kengligi bor, lekin dastur dizayni uchun haqiqiy to'rtburchaklar kengligi kerak emas,barcha to'rtburchaklar balandlikka ega, ammo dastur dizayni uchun to'rtburchakning haqiqiy balandligi kerak emas
maydon har doim kenglik × balandlikdir
Ushbu muammoni hal qilish uchun dastur kenglik va balandlikni kiritishi, so'ngra ushbu raqamlardan maydonni hisoblashi kerak. Haqiqiy raqamlar ahamiyatsiz - ular har bir to'rtburchak bilan o'zgaradi - va shuning uchun o'chiriladi.
Abstraksiyaga misol sifatida London metrosi xaritasini keltirish mumkin. U quvur va temir yo'l liniyalari va ulardagi stantsiyalar haqida batafsil ma'lumot beradi. Yo'lovchilar bir stantsiyadan ikkinchisiga sayohatni rejalashtirishlari uchun zarur bo'lgan narsa shu. Haqiqiy geografik joylashuv, stansiyalar orasidagi masofa, yer osti chuqurligi va platformalar soni kabi boshqa tafsilotlar kiritilmagan. Ular metroda sayohatni rejalashtirishga taalluqli emas.
London metrosi xaritasining bo'limi
Xulosa Algoritmlarda dekompozitsiyalash, bir algoritmda amalga oshirilishi kerak bo'lgan vazifalarni kichik qismlarga bo'linib, har bir qismni alohida yechish uslubi hisoblanadi. Bu usul algoritmlarni aniq va tushunarli qilishga yordam beradi va ulardagi xatoliklarni aniqlash va to'g'rilashni osonlashtiradi.
Quyidagi dekompozitsiyalash usullari mavjud:
Funksiyalash: Bu usulda, barcha algoritm kichik funksiyalarga bo'linadi. Bu usul algoritmlar tuzishda juda keng qo'llaniladi, chunki funksiyalar algoritmni boshqa dasturlar bilan ham birlashtirish imkoniyatini beradi.
Topshirish: Bu usulda, barcha vazifalar boshqa dasturlarga topshiriladi. Bunda, har bir vazifa alohida dasturga yoziladi va ularda alohida yechish usullari ishlatiladi. Ushbu usul mashhur muharrirlik dasturlari (text editors), ta'minotning bog'liq dasturlari va boshqa ko'p narsalarda qo'llaniladi.
Tarqatish: Bu usulda, algoritmni barcha vazifalari o'zaro bog'liq bo'lmagan qismlarga bo'linadi. Bunda, har bir qisim alohida yechiladi va ularda yozilgan natijalar boshqa qisimlarda ishlatiladi. Ushbu usul barcha algoritm turlarida qo'llanilishi mumkin.
Abstraksiyalash: Bu usulda, algoritmning barcha qismi alohida ob'ektga o'zlashtiriladi. Bu usul yordamida algoritmning qaysi qismi uchun nimani bajara olmaymizligimizga qarab, ob'ektga shakllantirib, yana ko'rsatkich funksiyalar va klasslar yoziladi. Abstraksiyalash o'zida shunchaki OOP dasturlashiga asosiyligi bor.
Bu usullar bir-biri bilan birlashgan holda ishlatilishi mumkin va har biri algoritmlarni qulay, aniqligi va to'g'riligi hisobidan yordam beradi.
Mavzu yuzasidan savollar:
Dekompozitsiya algoritmlari nima?
BCNF ga parchalanish nima?
3NF ga parchalanish haqida ma’lumot bering.
Dekompozitsiya va abstraktsiya haqida nimalar bilasiz?
Foydalanilgan adabiyotlar:
1.www.google.com
2. Blelloch, Gay E.; Maggs, Bryus M. "Parallel algoritmlar" (PDF) . AQSh: Kompyuter fanlari maktabi, Karnegi Mellon universiteti . Olingan 2015-07-27 .
3. Vishkin, Uzi (2009). "Parallel fikrlash: Ba'zi asosiy ma'lumotlar-parallel algoritmlar va texnikalar, 104 bet" (PDF) . 1992 yildan beri Merilend universiteti, Kollej Park, Tel-Aviv universiteti va Technion universitetida parallel algoritmlar bo'yicha o'qitiladigan kurslarning sinf eslatmalari.
4. Megson GM; Chen Xian (1997 yil 4 yanvar). Muntazam hisoblashlar sinfi uchun avtomatik parallellashtirish . Jahon ilmiy. ISBN 978-981-4498-41-8