آموزش الگوریتم های پیشرفته (الگوریتم های گراف) در جاوا

Advanced Algorithms (Graph Algorithms) in Java

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: جستجوی وسعت، جستجوی عمقی، کوتاه‌ترین مسیر، آربیتراژ، مولفه‌های به‌شدت متصل و جریان حداکثری با کاربردهای ساختار داده آشنا شوید درباره اصول اساسی نمودارها و تئوری گراف بیاموزید پیاده‌سازی الگوریتم‌های پیشرفته (الگوریتم‌های گراف) به طور کارآمد پیمایش گراف را یاد بگیرید. as width-first search and depth-first search درباره ترتیب توپولوژیکی و تشخیص چرخه اطلاعاتی درباره الگوریتم های کوتاه ترین مسیر (الگوریتم های Dijkstra و Bellman-Ford) بیاموزید در مورد درختان پوشاننده اطلاعاتی درباره اجزای قوی مرتبط با چرخه های همیلتونی و چرخه های اویلری بیشتر بدانید. (قضیه برش حداکثر جریان) پیش نیازها:اتصال اینترنت دانش پایه ساختارهای داده

این دوره در مورد الگوریتم‌های پیشرفته (الگوریتم‌های گراف) با تمرکز بر پیمایش نمودار، مشکلات کوتاه‌ترین مسیر، درخت‌های پوشاننده و مشکلات حداکثر جریان و بسیاری از کاربردهای آن از Google Web Crawler برای استفاده از موقعیت‌های آربیتراژ بازار سهام است.

بخش 1 - مبانی نظریه نمودارها:

  • گراف G(V,E) چیست

  • نمایش ماتریس مجاورت

  • نمایش فهرست مجاورت

بخش 2 - پیمایش نمودار (جستجوی عرض-اول)

  • جستجوی وسعت اول چیست؟

  • چگونه از BFS برای WebCrawling در موتورهای جستجو استفاده کنیم؟

بخش 3 - پیمایش نمودار (جستجوی عمق-اول)

  • جستجوی اول عمق چیست؟

  • نحوه استفاده از بازگشت برای اجرای DFS

  • کاربردهای DFS مانند ترتیب توپولوژیکی و تشخیص چرخه

  • با DFS راهی برای خروج از پیچ و خم پیدا کنید

بخش 4 - ترتیب توپولوژیکی

  • ترتیب توپولوژیکی چیست (مرتب سازی توپولوژیکی)

  • نمودارهای غیر چرخه ای جهت دار (DAG)

  • کوتاه ترین و طولانی ترین مسیر DAG

  • روشهای مسیر بحرانی و مدیریت پروژه

بخش 5 - تشخیص چرخه

  • چرخه ها در یک نمودار چیست؟

  • لبه های جلو و لبه های عقب

  • الگوریتم‌های تشخیص چرخه (الگوریتم تارجان با DFS)

بخش 6 - الگوریتم کوتاهترین مسیر Dijkstra

  • کوتاه ترین مسیر در گراف G(V,E) چیست

  • الگوریتم کوتاهترین مسیر Dijkstra

بخش 7 - الگوریتم کوتاهترین مسیر بلمن-فورد

  • الگوریتم بلمن-فورد

  • نحوه مدیریت چرخه های منفی

  • پیدا کردن فرصت های آربیتراژ در FOREX

بخش 8: - درختان پوشاننده (الگوریتم های کروسکال و پریم)

  • درختان پوشا چیست؟

  • ساختارهای داده اتحاد یافتن

  • الگوریتم کروسکال

  • الگوریتم پریم

بخش 9 - مؤلفه‌های متصل قوی (SCC)

  • اجزای قوی مرتبط

  • الگوریتم کوساراجو

  • الگوریتم تارجان

بخش 10 - مشکل حداکثر جریان

  • مشکل معروف جریان حداکثر

  • نحوه کاهش بیشتر مشکلات سخت به حداکثر مشکل جریان

  • الگوریتم فورد-فولکرسون

  • مشکل تطبیق دو بخشی

بخش 9 - مسئله فروشنده دوره گرد و چرخه های همیلتونی:

  • مشکل فروشنده دوره گرد (TSP)

  • نحوه برخورد با مشکلات NP-hard

  • متا ابتکاری چیست

بخش 10 - مسیرهای اویلری

  • مسیرهای اولری و چرخه های اویلری

  • الگوریتم هیرهولزر و مشکل پستچی چینی

بخش 11 - تجزیه و تحلیل الگوریتم ها

  • نحوه اندازه گیری زمان اجرای الگوریتم ها

  • تحلیل زمان اجرا با نمادهای O بزرگ (ordo)، Ω بزرگ (امگا) و θ بزرگ (تتا)

  • کلاس های پیچیدگی

  • الگوریتم های چند جمله ای (P) و چند جمله ای غیر قطعی (NP)

  • O(1)، O(logN)، O(N) و چندین پیچیدگی زمان اجرا دیگر

این دوره تقریباً ۱۱ ساعت طول می‌کشد، اما من به شما پیشنهاد می‌کنم این الگوریتم‌ها را چندین بار تایپ کنید تا درک خوبی از آن داشته باشید. شما می توانید کد منبع کل دوره را در آخرین سخنرانی دانلود کنید.

اگر به موضوعات پیشرفته در مورد الگوریتم علاقه دارید، حتماً باید این دوره را بگذرانید. دسته ای از زمینه ها وجود دارد که می توان از این روش ها استفاده کرد: از مهندسی نرم افزار تا تحقیقات علمی.

از اینکه به دوره پیوستید متشکریم، بیایید شروع کنیم!


سرفصل ها و درس ها

معرفی Introduction

  • معرفی Introduction

  • مبانی نظریه پیچیدگی Complexity theory basics

بررسی اجمالی نظریه گراف Graph Theory Overview

  • مروری بر نظریه گراف Graph theory overview

  • ماتریس مجاورت و فهرست مجاورت Adjacency matrix and adjacency list

  • اجرای ماتریس مجاورت و لیست مجاورت Adjacency matrix and adjacency list implementation

  • کاربردهای نمودارها Applications of graphs

  • آزمون بررسی اجمالی الگوریتم های نمودار Graph Algorithms Overview Quiz

جستجوی اول عرض (BFS) Breadth-First Search (BFS)

  • مقدمه جستجوی پهنا Breadth-first search introduction

  • اجرای جستجوی پهنا Breadth-first search implementation

  • آزمون BFS BFS Quiz

چالش دوره شماره 1 - WebCrawler Course Challenge #1 - WebCrawler

  • جستجوی گسترده - WebCrawler (هسته موتورهای جستجو) Breadth-first search - WebCrawler (core of search engines)

  • جستجوی پهنا - اجرای WebCrawler Breadth-first search - WebCrawler implementation

جستجوی اول عمق (DFS) Depth-First Search (DFS)

  • مقدمه جستجوی عمق Depth-first search introduction

  • اجرای DFS I - با پشته DFS implementation I - with stack

  • اجرای DFS II - با بازگشت DFS implementation II - with recursion

  • جستجوی عمقی و تجسم حافظه پشته Depth-first search and stack memory visualisation

  • مدیریت حافظه: BFS در مقابل DFS Memory management: BFS vs DFS

  • آزمون پیمایش نمودار Graph Traversal Quiz

چالش دوره شماره 2- فرار از پیچ و خم Course Challenge #2- Maze Escape

  • معرفی مشکل ماز Maze problem introduction

  • چالش دوره شماره 1 - فرار از پیچ و خم Course challenge #1 - maze escape

  • پیاده سازی الگوریتم حل پیچ و خم Maze solving algorithm implementation

ترتیب توپولوژیکی Topological Ordering

  • ترتیب توپولوژیکی چیست؟ What is topological ordering?

  • پیاده سازی ترتیب توپولوژیکی I Topological ordering implementation I

  • پیاده سازی ترتیب توپولوژیکی II Topological ordering implementation II

  • یافتن کوتاه ترین مسیر با ترتیب توپولوژیکی Finding the shortest path with topological ordering

  • ترتیب توپولوژیکی پیاده سازی کوتاه ترین مسیر I Topological ordering shortest path implementation I

  • اجرای کوتاهترین مسیر ترتیب توپولوژیکی II Topological ordering shortest path implementation II

  • برنامه نویسی پویا با مرتب سازی توپولوژیکی Dynamic programming with topological sort

  • مسابقه مرتب سازی توپولوژیکی Topological Ordering Quiz

تشخیص چرخه Cycle Detection

  • معرفی چرخه تشخیص Cycle detection introduction

  • پیاده سازی تشخیص چرخه I Cycle detection implementation I

  • پیاده سازی تشخیص چرخه II Cycle detection implementation II

  • آزمون تشخیص چرخه Cycle Detection Quiz

روش های کوتاه ترین مسیر - الگوریتم دایکسترا Shortest Path Methods - Dijkstra's Algorithm

  • مشکل کوتاه ترین مسیر چیست؟ What is the shortest path problem?

  • تجسم الگوریتم Dijkstra Dijkstra algorithm visualization

  • پیاده سازی الگوریتم Dijkstra I Dijkstra algorithm implementation I

  • اجرای الگوریتم Dijkstra II Dijkstra algorithm implementation II

  • اجرای الگوریتم Dijkstra III Dijkstra algorithm implementation III

  • الگوریتم Dijktsra با نمایش ماتریس مجاورت Dijktsra's algorithm with adjacency matrix representation

  • برنامه های کاربردی الگوریتم های کوتاه ترین مسیر Shortest path algorithms applications

  • آزمون الگوریتم دایکسترا Dijkstra's Algorithm Quiz

چالش دوره شماره 3 - طولانی ترین مسیر Course Challenge #3 - Longest Path

  • روش مسیر بحرانی (CPM) و طولانی ترین مسیرها The critical path method (CPM) and longest paths

  • چالش دوره شماره 3 - کوتاه ترین مسیر DAG Course challenge #3 - DAG shortest path

  • پیاده سازی طولانی ترین مسیر Longest path implementation

روش های کوتاه ترین مسیر - الگوریتم بلمن-فورد Shortest Path Methods - Bellman-Ford Algorithm

  • الگوریتم بلمن فورد چیست؟ What is the Bellman-Ford algorithm?

  • تجسم الگوریتم بلمن-فورد Bellman-Ford algorithm visualisation

  • پیاده سازی الگوریتم بلمن-فورد I Bellman-Ford algorithm implementation I

  • اجرای الگوریتم بلمن-فورد II Bellman-Ford algorithm implementation II

  • الگوریتم حریصانه یا رویکرد برنامه نویسی پویا؟ Greedy algorithm or dynamic programming approach?

  • آزمون الگوریتم بلمن-فورد Bellman-Ford Algorithm Quiz

چالش دوره شماره 4 - آربیتراژ در فارکس Course Challenge #4 - Arbitrage on FOREX

  • موقعیت های آربیتراژ در معرفی فارکس Arbitrage situations on FOREX introduction

  • موقعیت های آربیتراژ در پیاده سازی فارکس Arbitrage situations on FOREX implementation

درختان پوشا - الگوریتم کروسکال Spanning Trees - Kruskal's Algorithm

  • ساختار داده مجموعه ناهمگون چیست؟ What is the disjoint set data structure?

  • تجسم مجموعه های از هم گسسته Disjoint sets visualization

  • مقدمه الگوریتم کروسکال Kruskal's algorithm introduction

  • پیاده سازی الگوریتم کروسکال I Kruskal algorithm implementation I

  • اجرای الگوریتم کروسکال II Kruskal algorithm implementation II

  • پیاده سازی الگوریتم کروسکال III Kruskal algorithm implementation III

  • آزمون الگوریتم کروسکال Kruskal's Algorithm Quiz

درختان پوشا - الگوریتم پریم Spanning Trees - Prim's Algorithm

  • الگوریتم تنبل پریم چیست؟ What is the lazy Prim's algorithm?

  • پیاده سازی الگوریتم Lazy Prim I Lazy Prim's algorithm implementation I

  • اجرای الگوریتم Lazy Prim II Lazy Prim's algorithm implementation II

  • الگوریتم پریم مشتاق چیست؟ What is the eager Prim's algorithm?

  • اجرای الگوریتم Eager Prim Eager Prim's algorithm implementation

  • مقایسه الگوریتم های حداقل درخت پوشا Comparison of minimum spanning tree algorithms

  • کاربردهای درختان پوشاننده Applications of spanning trees

  • آزمون الگوریتم پریم Prim's Algorithm Quiz

کامپوننت های به هم پیوسته - الگوریتم کوساراجو Strongly Connected Components - Kosaraju's Algorithm

  • معرفی اجزای اتصال قوی Strongly connected components introduction

  • معرفی الگوریتم کوساراجو Kosaraju algorithm introduction

  • پیاده سازی الگوریتم کوساراجو I Kosaraju algorithm implementation I

  • اجرای الگوریتم کوساراجو II Kosaraju algorithm implementation II

  • پیاده سازی الگوریتم کوساراجو III Kosaraju algorithm implementation III

مولفه های به هم پیوسته قوی - الگوریتم ترجان Strongly Connected Components - Tarjan's Algorithm

  • معرفی الگوریتم ترجان Tarjan algorithm introduction

  • تجسم الگوریتم ترجان Tarjan algorithm visualization

  • پیاده سازی الگوریتم ترجان Tarjan algorithm implementation

  • کاربردهای اجزای متصل قوی Applications of strongly connected components

  • آزمون اجزای کاملاً متصل Strongly Connected Components Quiz

مشکل حداکثر جریان Maximum Flow Problem

  • معرفی حداکثر جریان - مبانی Maximum flow introduction - basics

  • معرفی حداکثر جریان - خواص Maximum flow introduction - properties

  • معرفی حداکثر جریان - برش ها Maximum flow introduction - cuts

  • معرفی حداکثر جریان - شبکه های باقیمانده Maximum flow introduction - residual networks

  • معرفی حداکثر جریان - الگوریتم فورد-فولکرسون Maximum flow introduction - Ford-Fulkerson algorithm

  • معرفی حداکثر جریان - مثال Maximum flow introduction - example

  • اجرای حداکثر جریان I - Edge، Vertex Maximum flow implementation I - Edge, Vertex

  • اجرای حداکثر جریان II - کلاس FlowNetwork Maximum flow implementation II - FlowNetwork class

  • اجرای حداکثر جریان III - الگوریتم فورد-فولکرسون Maximum flow implementation III - Ford-Fulkerson algorithm

  • اجرای حداکثر جریان IV - افزایش Maximum flow implementation IV - augmentation

  • اجرای حداکثر جریان V - تست Maximum flow implementation V - testing

  • کاربردهای مسئله حداکثر جریان Applications of maximum flow problem

  • مقاله در مورد مشکل حداکثر جریان Article on maximum flow problem

چرخه های همیلتونی - مسئله فروشنده دوره گرد (TSP) Hamiltonian Cycles - Travelling Salesman Problem (TSP)

  • چرخه هامیلتونی چیست؟ What are Hamiltonian cycles?

  • مشکل فروشنده دوره گرد The travelling salesman problem

  • پیاده سازی مشکل فروشنده دوره گرد I Travelling salesman problem implementation I

  • پیاده سازی مشکل فروشنده دوره گرد II Travelling salesman problem implementation II

  • TSP و تجسم حافظه پشته TSP and stack memory visualization

  • چرا از فراابتکاری استفاده کنیم؟ Why to use meta-heuristics?

  • امتحان مشکل فروشنده دوره گرد Travelling Salesman Problem Quiz

چرخه های اویلر - مسئله پستچی چینی Eulerian Cycles - Chinese Postman Problem

  • معرفی چرخه های اویلری Eulerian cycles introduction

  • کاربرد چرخه های اویلرین Eulerian cycles application

  • مسابقه چرخه های اویلرین Eulerian Cycles Quiz

### ضمیمه - درس تصادف نظریه پیچیدگی ### ### APPENDIX - COMPLEXITY THEORY CRASH COURSE ###

  • چگونه زمان اجرای الگوریتم ها را اندازه گیری کنیم؟ How to measure the running times of algorithms?

  • تصویر نظریه پیچیدگی Complexity theory illustration

  • نمادهای پیچیدگی - ordo بزرگ (O). Complexity notations - big (O) ordo

  • نمادهای پیچیدگی - Ω بزرگ (امگا) Complexity notations - big Ω (omega)

  • نمادهای پیچیدگی - تتا بزرگ (θ). Complexity notations - big (θ) theta

  • زمان اجرای الگوریتم Algorithm running times

  • کلاس های پیچیدگی Complexity classes

  • تجزیه و تحلیل الگوریتم ها - حلقه ها Analysis of algorithms - loops

  • مطالعه موردی - O(1) Case study - O(1)

  • مطالعه موردی - O(logN) Case study - O(logN)

  • مطالعه موردی - O(N) Case study - O(N)

  • مطالعه موردی - O(N*N) Case study - O(N*N)

برنامه تصویرسازی الگوریتم رایگان Algorhyme FREE Algorithms Visualizer App

  • برنامه تجسم الگوریتم ها Algorithms Visualization App

  • الگوریتم - الگوریتم ها و ساختارهای داده Algorhyme - Algorithms and Data Structures

مواد درسی (دانلود) Course Materials (DOWNLOADS)

  • مواد درسی Course materials

نمایش نظرات

آموزش الگوریتم های پیشرفته (الگوریتم های گراف) در جاوا
جزییات دوره
12.5 hours
103
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
15,236
4.7 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Holczer Balazs Holczer Balazs

مهندس نرم افزار