با تشکر از دکتر جواد سلیمی

Slides:



Advertisements
Similar presentations
Queue theory.
Advertisements

Stranded Costs مقدمه 1 - آشنايی با پديده های غيرخطی ( ياد آوری و تکميل ) 2 - مبانی رياضی ( مهم )
1 آزمايشگاه سيستم های هوشمند ( Domain-specific Architecture.
روشهاي پارس بهينه. پارس توسط انسان تمام روشهاي پارس که تا کنون مطرح شدند از تکنيکهاي “جستجوي کامل” براي تفسير جمله استفاده مي کردند. به نظر ميرسد که پارس.
ارائه روشي براي شناسايي کاراکترهاي دستنويس، برپايه شبکه LVQ.
ارائه درس روباتيکز Extended Kalman Filter فريد ملازم استاد مربوطه دکتر شيري دانشگاه امير کبير – دانشکده کامپيوتر و فناوري اطلاعات.
نام و نام خانوادگي : فريد ملازم 1 آزمايشکاه سيستم هاي هوشمند ( موضوع ارائه ارتباط بين component ها.
نام و نام خانوادگي : فريد ملازم 1 آزمايشکاه سيستم هاي هوشمند ( موضوع ارائه Process and Deployment Design.
ارائه دهنده: دکتر احمد عبدالله زاده تنظيم کننده:پرهام مرادي
نمايش اعداد.
ارائه کننده: آلاء شريعتی
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي تخصيص منابع.
مراحل مختلف اجرای يک برنامه
نمايش اعداد علی عادلی.  مبنا ( base ): –مبناي r: ارقام محدود به [0, r-1]  دسيمال:(379) 10  باينري:( ) 2  اکتال:(372) 8  هگزادسيمال:(23D9F)
مرتضي صاحب الزماني 1 Data Structures. مرتضي صاحب الزماني 2 Corner Stitching.
مرتضي صاحب الزماني 1 Basic Graph Algorithms. مرتضي صاحب الزماني 2 Graph Data Structures Adjacency Matrix [©Bazargan]
Solving problems by searching Chapter 3 Modified by Vali Derhami.
روابط مجموعه ها سلیمی. دکتر سلیمانی. نظریه فازی در سال 1965 بوسیله یک دانشمند ایرانی بنام پروفسور لطفی زاده معرفی گردید. گرچه این نظریه در ابتدا با.
1 فصل دوم تبديلات. 2 فصل دوم سرفصل مطالب مقدمه ضرب بردارها دستگاه ‌ هاي مختصات دوران ‌ ها مختصات همگن دوران ‌ ها و انتقال ‌ ها تبديلات تركيبي همگن تبديل.
1/19 Informed search algorithms Chapter 4 Modified by Vali Derhami.
Solving problems by searching Chapter 3, part 2 Modified by Vali Derhami.
Department of Computer Eng. & IT Amirkabir University of Technology (Tehran Polytechnic) Data Structures Lecturer: Abbas Sarraf Order.
سيستم خبره مرکب ( ترکيب پيشرو و پسرو ) زماني که يک فرضيه احتمالي براي جواب داشته باشيم، روش backward مي تواند خيلي کاراتر و مناسبتر باشد. اگر هيچ احتمال.
1 فصل سوم سينماتيك مستقيم. 2 محتواي فصل   تعريف مجموعه فازي   تابع عضويت   نمايش مجموعه هاي فازي   برش آلفا   متغيرهاي زباني   ساخت مجموعه.
Image Enhancement in the
Cost- Effectiveness Analysis
مدارهای منطقی فصل چهارم و پنجم - مدارهاي منطقي تركيبي ماجولي
عامل هاي منطقي- منطق گزاره‌اي
ساختمان داده ها و الگوريتمها
ساختمان داده ها و الگوريتم ها
بنام خدا زبان برنامه نویسی C (21814( Lecture 12 Selected Topics
آرايه ها و ساختارها.
دانلود جدیدترین مقالات برق الکترونیک و کامپیوتر
آرايه ها.
ANOVA: Analysis Of Variance
ليست هاي پيوندي.
فصل سوم : صف وپشته اهداف آشنايي با پشته آشنايي با صف ارزشيابي عبارات 1.
ANOVA: Analysis Of Variance
روش حریصانه در طراحی الگوریتم
وحید حقيقت دوست دانشکده فنی و مهندسی دانشگاه شاهد
Quick Sort مرتب سازي سريع.
لغت نامه و جدول درهم سازي Dictionaries and Hash Tables
آشنايي با برنامه نويسي به زبان C++
تجزیه و تحلیل تصمیم گیری
معرفي درس ساختمان داده ها و الگوريتمها
تبدیل فوریه (Fourier Transform)
نمايش اعداد در کامپيوتر چهار عمل اصلي
Similarity transformation
(Structured Query Language)
Tree Sort.
ساختمان داده‌ها پیمایش درخت دودویی
درخت جستجوی دودویی درخت جستجوي دودويي: درخت دودويي صفر نود يا بيشتر
سميرا قانوني زهرا معدني
سيستمهاي اطلاعات مديريت
فاطمه بهمن زیاری ، مریم امینی مدل های خطی 1 بهمن1393
هیدرولیک جریان در کانالهای باز
{ بنام خداوند بخشنده و مهربان}
فيلتر كالمن معرفي : فيلتر كالمن تخمين بهينه حالت‌ها است كه براي سيستم‌هاي ديناميكي با اختلال تصادفي در سال 1960 بزاي سيستم‌هاي گسسته و در سال 1961 براي.
آشنايي با درخت هاي تصميم گيري
وبلاگ جامع مهندسی برق و الکترونیک
به نام خدا اين فايل راهنما جهت آشنايی کاربران گرامی با پايگاه اطلاعاتی Sciencedirect و نحوه جستجوی اطلاعات در آن تهيه شده است لطفاً اسلايدهای بعد را مشاهده.
بسم الله الرحمن الرحیم هرس درخت تصمیم Dr.vahidipour Zahra bayat
نرم افزار عملي دوره كارداني كامپيوتر دانشگاه کردستان دانشكده فني
ساختمان داده‌ها درختان و درختان دودویی
مثال : فلوچارتي رسم كنيد كه دو عدد از ورودي دريافت كرده بزرگترين عدد
در اين درس مباني ساختمان داده ها و الگوريتم ها تدریس میشود.
Petri Nets: Properties, Analysis and Application
ساختمان داده ها مرتب سازی درجی
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
Presentation transcript:

با تشکر از دکتر جواد سلیمی درختها- قسمت چهارم سید مهدی وحیدی پور با تشکر از دکتر جواد سلیمی دانشگاه کاشان دانشکده برق و کامپيوتر

دانشگاه کاشان دانشکده برق و کامپيوتر درختها مقدمه بازنمايي درخت ها درخت هاي دودويي پيمايش درختهاي دودويي عمليات ديگر روي درختهاي دودويي درختهاي دودويي نخ کشي شده Heap ها درختان جستجوي دودويي درختهاي انتخاب جنگل ها نمايش مجموعه ها شمارش درخت هاي دودويي متمايز دانشگاه کاشان دانشکده برق و کامپيوتر

صف هاي اولويت عضوي که بايد حذف شود عضو با بالاترين يا پايين ترين اولويت است مثال : تخصيص منابع هر وقت که کامپيوتري آزاد شد کاربري که متقاضي زمان کمتري است انتخاب شود : (صف اولويت مينيموم) در هر عمل حذف عضوي که کوچکترين مقدار کليد را دارد حذف مي شود کاربري که پول بيشتري پرداخته است انتخاب شود: (صف اولويت ماکزيموم) در هر عمل حذف عضوي که بزگترين مقدار کليد را دارد حذف مي شود

صف هاي اولويت صف اولويت ماکزيمم (صف مينيموم به صورت مشابه قابل تعريف) ساده ترين پياده سازي : ليست خطي مرتب نشده نمايش ترتيبي اضافه کردن عضو به آساني در انتهاي صف O(1) حذف يک عضو نيازمند جستجوي عضو با بزرگترين کليد O(n) نمايش پيوندي اضافه کردن عضو به آساني در ابتداي زنجير O(1)

صف هاي اولويت صف اولويت ماکزيمم (صف مينيموم به صورت مشابه قابل تعريف) ساده ترين پياده سازي : ليست خطي مرتب نشده نمايش ترتيبي Unordered array اضافه کردن عضو به آساني در انتهاي صف O(1) حذف يک عضو نيازمند جستجوي عضو با بزرگترين کليد O(n) نمايش پيوندي Unordered linked list اضافه کردن عضو به آساني در ابتداي زنجير O(1)

در صورت استفاده ار heap ماکزيمم زمان حذف و اضافه O(log n) مي شود صف هاي اولويت صف اولويت ماکزيمم (صف مينيموم به صورت مشابه قابل تعريف) پياده سازي با ليست خطي مرتب نمايش ترتيبي Sorted Array عضوها به صورت غير نزولي اضافه کردن عضو O(n) حذف يک عضو O(1) نمايش پيوندي Sorted linked list عضوها به صورت غير صعودي اضافه کردن عضو O(n) حذف يک عضو O(1) در صورت استفاده ار heap ماکزيمم زمان حذف و اضافه O(log n) مي شود

صف هاي اولويت صف اولويت ماکزيمم (صف مينيموم به صورت مشابه قابل تعريف)

Heap تعريف max tree درختي است که مقدار کليد هر گره آن کمتر از مقادير کليدهاي فرزندانش نباشد. max heap يک درخت دودويي کامل است که همزمان max tree نيز مي باشد. min tree درختي است که مقدار کليد هر گره آن بيشتر از مقادير کليدهاي فرزندانش نباشد. min heap يک درخت دودويي کامل است که همزمان min tree نيز مي باشد.

Heap مقدار کليد در گره ريشه در max heap (min heap) بزرگترين (کوچکترين) کليد در درخت است. مثال max heap min heap

دانشگاه کاشان دانشکده برق و کامپيوتر Heap عمليات اصلي روي يک Heap ايجاد يک Heap خالي اضافه کردن يک عنصر جديد به Heap حذف بزرگترين عنصر از Heap دانشگاه کاشان دانشکده برق و کامپيوتر

دانشگاه کاشان دانشکده برق و کامپيوتر Heap نوع داده مجرد Heap دانشگاه کاشان دانشکده برق و کامپيوتر

اضافه کردن يک عنصر در Max Heap پيچيدگي اضافه کردن عنصر O(log2 n) insert 21 5 *n= 6 5 i= 6 1 3 3 7 [1] 21 20 parent link [2] [3] item up heap 15 20 5 2 [4] [5] [6] [7] 14 10 2 5

حذف کردن يک عنصر از Max Heap < پيچيدگي حذف کردن عنصر O(log2 n) parent = 1 4 2 *n= 5 4 child = 4 8 2 [1] 15 20 [2] [3] 15 14 2 item.key = 20 [4] [5] temp.key = 10 14 10 10

درختهاي جستجوي دودويي دليل نياز به درختهاي جستجوي دودويي Heap براي کاربردهايي که نياز به حذف يک عنصر دلخواه دارند اصلا مناسب نيست. حذف کوچکترين (بزرگترين) عنصر O(log2n) حذف يک عنصر دلخواه O(n) جستجوي يک عنصر دلخواه O(n) تعريف درخت جستجوي دودويي هر عنصر داراي يک کليد است. کليدهاي زيردرخت غيرتهي چپ (راست) کوچکتر (بزرگتر) از کليد واقع در ريشه هستند. زيردرختهاي چپ و راست نيز خود درختهاي جستجوي دودويي هستند.

درختهاي جستجوي دودويي مثال: b و c درخت جستجوي دودويي هستند medium smaller larger

جستجوي يک عضو در درخت جستجوي دودويي فرض کنيد مي خواهيم مکان عنصري با کليد x را پيدا کنيم. کار خود را از ريشه (root) شروع مي کنيم ، اگر ريشه تهي باشد، درخت جستجو فاقد هر عنصري بوده و جستجو ناموفق خواهد بود. در غير اين صورت x را با مقدار کليد ريشه مقايسه مي کنيم : اگر x برابر با اين کليد باشد آنگاه جستجو به طور موفقيت آميز به پايان مي رسد. اگر x کوچکتر از مقدار کليد ريشه باشد، هيچ عنصري در زيردرخت راست نمي تواند که مقدار کليد x را دارا باشد و فقط زير درخت چپ بايد جستجو شود. اگر x بزرگتر از مقدار کليد ريشه باشد، فقط لازم است زيردرخت راست را جستجو مي کنيم.

جستجوي يک عضو در درخت جستجوي دودويي Search(25) Search(76) 44 17 88 32 65 97 28 54 82 29 76 80

جستجوي يک عضو در درخت جستجوي دودويي جستجوي بازگشتي جستجوي تکراري اگر h ارتفاع يا عمق يک درخت جستجوي دودويي باشد، عمل جستجو در مدت O(h) انجام مي شود. O(h)

اضافه کردن يک عضو در درخت جستجوي دودويي براي درج عنصر جديدx در درخت ، ابتدا بايد مشخص کنيم که آيا با کليد عناصر موجود در درخت متفاوت است يا خير. براي انجام اين کار بايد درخت را جستجو کرد. اگرجستجو ناموفق باشد ، عنصر را در محلي که جستجو خاتمه پيدا نموده است اضافه مي کنيم. دانشگاه کاشان دانشکده برق و کامپيوتر

اضافه کردن يک عضو در درخت جستجوي دودويي int Insert_node(tree-pointer tree, int x) //Insert x into the binary search tree { // search for x, q is the parent of p tree –pointer p = tree, q=0; while ( p) { q=p; if (x==p-> data) return false; //x is already in tree if (x <p->data) p=p->leftchild; else p=p->rightchild; } //perform insertion p= (tree-pointer) malloc (sizeof (node)); p->leftchild=p->rightchild=0; p->data=x; if (!tree) tree=p; else if (x< q-> data) q->leftchild =p; else q-> rightchild=p; return true; اگر h ارتفاع يا عمق يک درخت جستجوي دودويي باشد، عمل اضافه کردن در مدت O(h) انجام مي شود.

اضافه کردن يک عضو در درخت جستجوي دودويي 30 40 5 2 35 80 30 40 5 2 اضافه کردن 80 30 40 5 2 80 اضافه کردن 35 دانشگاه کاشان دانشکده برق و کامپيوتر

حذف يک عضو از درخت جستجوي دودويي 3 حالت بايد در نظر گرفته شود: حالت1: حذف عضو برگ حالت 2: حذف عضو غير برگ که فقط يک بچه دارد حالت 3: حذف عنصر غير برگ که دو بچه دارد. بزرگترين عضو در زير درخت چپ يا کوچکترين عضو در زير درخت راست ( نزديکترين عددها به عدد مذکور ) جايگزين آن مي شوند. حال خود عنصر جايگزين شونده بايد از محل قبلي خود حذف شود. عنصر جايگزين شونده همواره درجه حداکثر يک دارد (حالت 1 يا 2) پس حذف آن ساده است. دانشگاه کاشان دانشکده برق و کامپيوتر

حذف يک عضو از درخت جستجوي دودويي حالت 3: عنصر جايگزين شونده عنصر قبلي يا بعدي در پيمايش ميانوندي است. عنصر قبلي يا بعدي در پيمايش ميانوندي نزديکترين عنصرها به عنصر حذف شونده هستند. اگر h ارتفاع يا عمق يک درخت جستجوي دودويي باشد، عمل حذف کردن در مدت O(h) انجام مي شود.

درخت هاي جستجوي دودويي ارتفاع / عمق درخت جستجوي دودويي ارتفاع يک درخت جستجوي دودويي n عضوي مي تواند به بزرگي n باشد. وقتي که عميات اضافه و حذف کردن به صورت تصادفي انجام شود ارتفاع درخت جستجوي دودويي به طور متوسط O(log2n) است. درختهاي جستجويي که در بدترين حالت عمق O(log2n) دارند درختهاي جستجوي متوازن balanced search trees ناميده مي شوند. درختان جستجوي متوازني وجود دارند که عمل جستجو، درج و حذف در آنها در زمان O(h) انجام مي شود از جمله درختان red_black ، 2-3 ، AVL