5.2 Articulation Point and Biconnected Components

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 ก.พ. 2018
  • Articulation point is a vertex in a graph, if it is removed, graph will split into components.
    PATREON : www.patreon.com/bePatron?u=20...
    Courses on Udemy
    ================
    Java Programming
    www.udemy.com/course/java-se-...
    Data Structures using C and C++
    www.udemy.com/course/datastru...
    C++ Programming
    www.udemy.com/course/cpp-deep...

ความคิดเห็น • 193

  • @yeyuksel
    @yeyuksel 4 ปีที่แล้ว +319

    Even my grandma would understand this topic with your explanation

    • @destinyjames6117
      @destinyjames6117 3 ปีที่แล้ว +4

      lmao sir yea his explanation is so clear

    • @vinayak12746
      @vinayak12746 ปีที่แล้ว

      By seeing your dp, you may have the age around 25, therefore your grandma age may be around 60-70. So, the people who is having age around this range can't know English, therefore how can you say that your grandma can understand this without knowing English? Don't try to impress or show off here.....

    • @saikarthik559
      @saikarthik559 ปีที่แล้ว +15

      @@vinayak12746 By seeing your long message we can say that you have wasted time by typing comment, therefore Don't try to waste your time again ok?....

    • @vinayak12746
      @vinayak12746 ปีที่แล้ว +1

      @@saikarthik559 😂 I do fast typing, is there any problem for you???

    • @m1ckey007
      @m1ckey007 ปีที่แล้ว +7

      @@vinayak12746 that'll better help you in competitive programming... not commenting vague here. ☮

  • @rahulvijayaragavan4903
    @rahulvijayaragavan4903 4 ปีที่แล้ว +14

    One of the reasons why i feel youtube is a boon is that it gets us to amazing teachers like you, which otherwise will be rare. I am in my 30s but students in this generations are really blessed. Hope they make use of it.

  • @AltairCrysis
    @AltairCrysis 2 ปีที่แล้ว +4

    Wow, this was really clear -- I'd gone through 4 different explanations prior to watching this video, and this is the first time I actually understand what was going on! Great job!!

  • @mateusogawa6617
    @mateusogawa6617 หลายเดือนก่อน +1

    Thank you so much! I spent way too long trying to solve this problem for my class and to no avail, but when I watched this video I found the solution right away! Thank you!

  • @hardikvansia3293
    @hardikvansia3293 5 ปีที่แล้ว +70

    Hats off to you ...
    Really great explanation.
    Appreciate your hardwork.

  • @rushikothari1261
    @rushikothari1261 4 ปีที่แล้ว +22

    You and Ravindra Ravula sir are shaping many computer Engineers in our country 🇮🇳.

  • @jaatharsh
    @jaatharsh 3 ปีที่แล้ว +4

    thanks for making the Video Sir, it was difficult for me to grasp this Algo at first,
    I watched ur explanation twice to get a better understanding.
    keep on posting such videos.

  • @mohammad_bilal951
    @mohammad_bilal951 3 ปีที่แล้ว +3

    Dear Abdul Bari Sir
    Please KEEP UPLOADING more lectures to be honestly your videos make more sense and are very simple please keep up the good work.
    :)

  • @allawhussein
    @allawhussein 2 ปีที่แล้ว +1

    When an eight minute TH-cam video is better than a whole lecture on the subject.

  • @807johnny807
    @807johnny807 5 ปีที่แล้ว +11

    Finally a great explanation, not those freaking recursive formulas

  • @pmoieni
    @pmoieni 3 ปีที่แล้ว +1

    best explanation, algorithms are really hard but with your explanation who will not understand, thank you

  • @satishchandra6623
    @satishchandra6623 3 ปีที่แล้ว +14

    But why this algorithm works? I mean why there is an articulation point when L(v)>=d[u]? Any explanation for this is highly appreciated?🙏

    • @raywang999
      @raywang999 3 ปีที่แล้ว +15

      cp-algorithms.com/graph/cutpoints.html
      I'm still trying to understand it, but I understand it as this: We root the graph arbitrarily, creating a tree-like structure (i think it's called a dfs-tree), then notice 2 observations:
      A node is an articulation point if: it's the root and has more than 1 child OR
      A node is not the root and none of it's children have a back edge to the node's ancestors (aka. there's no cycles that lead back)
      To efficiently check if a node meets the second observation, we use the L and d arrays. Instead of thinking of L as low, think of it as the earliest time we visited a node. If the earliest time we visited a child (aka. L[v]) is less than the time we visited our current node (d[u]) then that means in our dfs, we visited v from an ancestor, which means v has a back-edge to an ancestor.
      More formally: iff L[v] < d[u], u is not an articulation point. Therefore, if L[v] >= d[u], u is an articulation point.
      Hope that helped!

    • @satishchandra6623
      @satishchandra6623 3 ปีที่แล้ว +4

      @@raywang999 Great effort! It's Crystal clear now! Since we have an back edge means that the "Earliest time of child (aka L[v]) is already visited from ancestor, so will not become articulation point" ! Thank You! 🙌🙌

    • @MayankSharma-sf3hy
      @MayankSharma-sf3hy 3 ปีที่แล้ว

      @@raywang999 where you understood it so deep any source?

    • @sohamdas9160
      @sohamdas9160 2 ปีที่แล้ว

      @@raywang999 Thank you SO much!!!

  • @ManikandanM-wz2vb
    @ManikandanM-wz2vb 4 ปีที่แล้ว +1

    Thank u so much sir ,Your videos in algorithms is very helpful to me and it also arouses an interest.Finally ur way of teaching is mesmerising!!

  • @Monica-cq2hr
    @Monica-cq2hr 2 ปีที่แล้ว

    Sir thank u so much for this video ......I searched at many places .....but u r crystal clear and at the point.....

  • @sahithmylavarapu9375
    @sahithmylavarapu9375 5 ปีที่แล้ว +3

    Simple ,clean ,neat .
    Thanks a lot 😊 sir ...

  • @thepinkcodon
    @thepinkcodon 4 ปีที่แล้ว

    Sir, what do we do if we have to find cut vertices/articulation points bw a unique source and a unique sink in a DAG (Directed Acyclic Graph)?

  • @TheWebPotato
    @TheWebPotato 6 ปีที่แล้ว +5

    Here, once we have found the articulation point. How do we know from which vertex to vertex do we have to draw an edge so that it is bi-connected? Thanks once again.

  • @amrhamcho1853
    @amrhamcho1853 5 ปีที่แล้ว

    Excellent explanation, props to you, sir!

  • @arnavattri5047
    @arnavattri5047 6 ปีที่แล้ว +7

    Awesome! Thank you, Sir! :)

  • @miruvarshinifam5955
    @miruvarshinifam5955 2 ปีที่แล้ว

    Thank you very much, sir, your explanation about all the topics is very simple and understandable.

  • @amitmagar1675
    @amitmagar1675 3 ปีที่แล้ว +7

    really appreciate your efforts to explain things so lucidly!

  • @determinator4491
    @determinator4491 2 ปีที่แล้ว +1

    I didnot understand the lower dfs number was derived. what path is being taken. How are those determined as back edge. I can go from 5 -> 6 -> 3 -> 2 -> 1. Why are we determining 3 is lower dfs number?

  • @romanarahman5980
    @romanarahman5980 4 ปีที่แล้ว +18

    I was soo confused about this topic but your explanation is amazing Sir. Thanks a lot

  • @martonnemeth236
    @martonnemeth236 4 ปีที่แล้ว +3

    Really good explanation, thank you.

  • @287MdSahil
    @287MdSahil 3 ปีที่แล้ว

    Best explanation possible for this algorithm

  • @stith_pragya
    @stith_pragya 5 หลายเดือนก่อน +2

    Thank You So Much for this wonderful video........🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻

  • @abi6ail
    @abi6ail 3 ปีที่แล้ว +1

    Wow, great explanation, really helpful! thank you!

  • @ravipatel3624
    @ravipatel3624 3 ปีที่แล้ว +4

    Classic explanation, hats off to you

  • @barabenkag221
    @barabenkag221 4 ปีที่แล้ว

    Great! Really helpful! Thank you very much!

  • @gulfilizisk1543
    @gulfilizisk1543 ปีที่แล้ว

    Dear Abdul Bari, thanks to you I like the algorithms! Thanks so much!

  • @travisblack9519
    @travisblack9519 6 ปีที่แล้ว +5

    This is a very good explanation, thank you.

  • @tanisharastogi6575
    @tanisharastogi6575 6 ปีที่แล้ว +17

    How has the formula been derived?

    • @0anant0
      @0anant0 4 ปีที่แล้ว +5

      Tarjan's Algorithm

  • @suvijaashri4625
    @suvijaashri4625 3 ปีที่แล้ว

    A very clear explanation sir.
    thanks a lot.

  • @Tehbert321
    @Tehbert321 4 ปีที่แล้ว

    Thank you! That was super helpful

  • @notanonymous3976
    @notanonymous3976 2 ปีที่แล้ว

    is the lowest number the lowest vertex value or the lowest discovery time?

  • @pratyushsrivastava3783
    @pratyushsrivastava3783 6 ปีที่แล้ว +4

    abdul bhai ki jai ho. shukriya bhai......(x100)

  • @destroyer_x9595
    @destroyer_x9595 ปีที่แล้ว

    Sir what happens if the graph has only one back edge ?
    will the values of L of those corresponding vertices be 0 ?

  • @bushidocodes
    @bushidocodes 5 ปีที่แล้ว

    Can you please clarify how one algorithmically finds the "first backedge"? Based on what you show, where the root vertex resolves to the backedge from vertex 2, it seems like it must be level-synchronized BFS, where we compare all backedges in a given level and resolve to the highest reaching backedge. Is that what you would envision?

    • @bushidocodes
      @bushidocodes 5 ปีที่แล้ว

      One other thing I've noticed while implementing this is that there might be parts of the spanning tree that don't encounter any backedges when traversing downwards(e.g. 5 if we were to delete the backedge from 6). It seems that we could remove 6 without problem, but removing 5 would make 6 it's own graph. I think the way to get around that is to label vertices at having an L of MAX_INT to make sure the formula finds those as well, but ignore vertices iwth MAX_INT that are also leat nodes on the spanning tree.

  • @rohes8129
    @rohes8129 ปีที่แล้ว +1

    Thanks man, thanks alot
    May GOD protect u and guide u❤️❤️❤️❤️❤️❤️

  • @rohes8129
    @rohes8129 ปีที่แล้ว +2

    Ur unbelievable sir!!
    Thanks again... ❤️❤️❤️🌹🌹🌹🌹🌹🌹🌹🌹🌹

  • @Akashash992
    @Akashash992 2 ปีที่แล้ว

    Keep it going... Your explanation is awesome

  • @starc701
    @starc701 3 ปีที่แล้ว +5

    🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌THE GOD MR ABDUL BARI 🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌

  • @nikhilkalyan6273
    @nikhilkalyan6273 4 ปีที่แล้ว +3

    in finding the least path L can we assume the path as 5->3->2->1 as it is a undirected graph?

  • @mgphyothant
    @mgphyothant ปีที่แล้ว

    Really good lecture for free, thank you sir.

  • @divyanshuyadav4148
    @divyanshuyadav4148 4 ปีที่แล้ว +3

    how this algorithm will work for undirected linear graph (i.e. no cycle) ?

    • @mikloscsizmadia780
      @mikloscsizmadia780 4 ปีที่แล้ว

      In that graph all of the vertices are articulation points exept the ones at the bottom of the dfs tree

  • @shahrahul5872
    @shahrahul5872 4 ปีที่แล้ว

    Here there are no directed edges so why lowest for 6 is 3 ,we can still go from 3 to 1 ?

  • @himantabiswadeka6922
    @himantabiswadeka6922 3 ปีที่แล้ว

    Sir, what if we take an array of size equal to that the number of vertices and insert the total number of incident edges per vertex( like we can calculate the indegree and outdegree of a directed graph), then input the adjacent matrix of the corresponding graph, the vertex having highest number of incident edges will be the articulation point in most cases! Sir, I don't have much knowledge regarding that, just asking can we do that?

  • @afreedmohmmad
    @afreedmohmmad 9 หลายเดือนก่อน

    Sir what if back edge is not present for last number in spanning tree?what is lowest discovery number

  • @ayush5234
    @ayush5234 2 ปีที่แล้ว +1

    Instead of L[v] >= d[u] , i wrote L[v]>=L[u]
    It passes most of the test cases but obviously some are failing. I am not able to draw any graph for which L[v]>=L[u] produces incorrect result. Can anybody help?

  • @ilovancristian
    @ilovancristian 2 ปีที่แล้ว

    Thank you! Also, I have found something related to the last statement: when is node/point 1 an articulation point (8:05). Maybe it helps somebody.
    First time this was confusing for me because I thought that if node 1 has more than 1 neighbor then 1 is an articulation point, but that is not true. For instance, if node 1 belongs to a cycle, then he has more than 1 neighbor, therefore he is not an articulation point.
    However, I found that 1 is an articulation point if he belongs to more than 1 biconex components. That is how I check if 1 is or not an articulation point.

  • @User-ow7rn
    @User-ow7rn 3 ปีที่แล้ว

    sir ,at 3:33 why 2 is visited at 6th? why not at 2nd?generally in for loop ,we start from 1 to n,so 2 will come first,right?

  • @ankitraina4047
    @ankitraina4047 3 ปีที่แล้ว +1

    Teacher ho toh Abdul sir jesa vrna na ho :)

  • @pjac744
    @pjac744 4 ปีที่แล้ว +3

    What would be the time complexity of this approach? Is it O(V*E)?

    • @dethswurl117
      @dethswurl117 4 ปีที่แล้ว

      The time complexity is the same as DFS which is O(V + E) according to: www.geeksforgeeks.org/articulation-points-or-cut-vertices-in-a-graph/

  • @sainaveen5659
    @sainaveen5659 3 ปีที่แล้ว

    This explanation is 🔥..by the way that formula is derived from tarjan algorithm right?....

  • @karnansooriyakumar8002
    @karnansooriyakumar8002 2 ปีที่แล้ว

    Thank you sir, very clear explanation🥰🥰

  • @marykapodistria7204
    @marykapodistria7204 3 ปีที่แล้ว +1

    How does this work for 3 as the parent and 2 as the child? I mean the formula L[v] >= d[u] where u = 3 and v = 2. L[2] = 1 and d[3] = 3 thus this shows 3 is not an articulation point

    • @satishchandramedi9729
      @satishchandramedi9729 2 ปีที่แล้ว

      ---------------------------------------Credits: Ray Wang-------------------------------------------------------
      cp-algorithms.com/graph/cutpoints.html
      I'm still trying to understand it, but I understand it as this: We root the graph arbitrarily, creating a tree-like structure (i think it's called a dfs-tree), then notice 2 observations:
      A node is an articulation point if: it's the root and has more than 1 child OR
      A node is not the root and none of it's children have a back edge to the node's ancestors (aka. there's no cycles that lead back)
      To efficiently check if a node meets the second observation, we use the L and d arrays. Instead of thinking of L as low, think of it as the earliest time we visited a node. If the earliest time we visited a child (aka. L[v]) is less than the time we visited our current node (d[u]) then that means in our dfs, we visited v from an ancestor, which means v has a back-edge to an ancestor.
      More formally: iff L[v] < d[u], u is not an articulation point. Therefore, if L[v] >= d[u], u is an articulation point.
      Hope that helped!

  • @ashb8552
    @ashb8552 2 หลายเดือนก่อน +1

    For 5 and 6
    Why cant we go from 3 to 2 and then 1
    Like 5->6->3->2->1

  • @s9chroma210
    @s9chroma210 3 ปีที่แล้ว

    Exam today, this saved me

  • @toyintoy
    @toyintoy 4 ปีที่แล้ว

    and for a non bicconected graph?

  • @vbansal345
    @vbansal345 4 ปีที่แล้ว

    Sir , best explanation

  • @liangtang2127
    @liangtang2127 4 ปีที่แล้ว +2

    very clear explanation, thank you so much!!

  • @swaroopajalasuthram2535
    @swaroopajalasuthram2535 3 ปีที่แล้ว

    Tnq Soo much sir for u r valuable explanation.

  • @nigamsn748
    @nigamsn748 2 ปีที่แล้ว

    Beautifully explained

  • @spotlight4091
    @spotlight4091 5 ปีที่แล้ว +1

    Semma sir.continue

  • @taivinh1986
    @taivinh1986 2 ปีที่แล้ว

    what a concise explanation

  • @sayandey1478
    @sayandey1478 3 ปีที่แล้ว +1

    low [6] can be 1 also, why is it 3? we can go 1 via 3, right? I know it should be 3 but why? what's the definition

  • @vishalgoyal9180
    @vishalgoyal9180 4 ปีที่แล้ว

    By seeing your demonstration style i just want to buy your complete course.
    Is there any coupon available please .

    • @abdul_bari
      @abdul_bari  4 ปีที่แล้ว +1

      Vishal there no other course on algorithms

  • @ShaliniNegi24
    @ShaliniNegi24 ปีที่แล้ว

    Wow, simply amazing !!

  • @herumuharman6305
    @herumuharman6305 2 ปีที่แล้ว

    Finally I get it, thanks man.

  • @himanshusrihsk4302
    @himanshusrihsk4302 4 ปีที่แล้ว

    Awesome explaination sir

  • @ajay.chawla
    @ajay.chawla 5 ปีที่แล้ว

    The back edges how are they used and how to connect them to find L. For one of the question there were only 2 back edges and thus i got L value 1 for all vertices. I didn't understand about L.

    • @ajay.chawla
      @ajay.chawla 5 ปีที่แล้ว

      @@abdul_bari sir suppose if the node is far from a back edge then what to do how to traverse that and get L for it

    • @ajay.chawla
      @ajay.chawla 5 ปีที่แล้ว

      Okay sir got it. Thank you :)

    • @satishchandramedi9729
      @satishchandramedi9729 2 ปีที่แล้ว

      --------------------------------------- Credits: Ray Wang -------------------------------------------------------
      cp-algorithms.com/graph/cutpoints.html
      I'm still trying to understand it, but I understand it as this: We root the graph arbitrarily, creating a tree-like structure (i think it's called a dfs-tree), then notice 2 observations:
      A node is an articulation point if: it's the root and has more than 1 child OR
      A node is not the root and none of it's children have a back edge to the node's ancestors (aka. there's no cycles that lead back)
      To efficiently check if a node meets the second observation, we use the L and d arrays. Instead of thinking of L as low, think of it as the earliest time we visited a node. If the earliest time we visited a child (aka. L[v]) is less than the time we visited our current node (d[u]) then that means in our dfs, we visited v from an ancestor, which means v has a back-edge to an ancestor.
      More formally: iff L[v] < d[u], u is not an articulation point. Therefore, if L[v] >= d[u], u is an articulation point.

  • @shahidsiddiqui6013
    @shahidsiddiqui6013 3 ปีที่แล้ว

    Super understandable !

  • @user-um8ps3tl7h
    @user-um8ps3tl7h 5 ปีที่แล้ว +1

    Thank you ^^

  • @marshallokafor5034
    @marshallokafor5034 ปีที่แล้ว +1

    Dr. Abdul, there seems to be a confusion here Sir. What if we evaluate L[2] and its parent is V(3) which has a D[3] = 1. But V(3) is definitely an articulation point but this scenario i have just mentioned will evaluate to False. Can you clarify Sir?

  • @sachidrolia9628
    @sachidrolia9628 4 ปีที่แล้ว +1

    sir please upload videos for decrease and conquer, transform and conquer

  • @amalmathew5500
    @amalmathew5500 6 ปีที่แล้ว

    nice video thanks

  • @mohammedabdulazeem5656
    @mohammedabdulazeem5656 2 ปีที่แล้ว

    Alhamdulillah, Very nice exxplanation

  • @jananiselvaraj6180
    @jananiselvaraj6180 ปีที่แล้ว

    Does articulation point and biconnected components mean the same ?

  • @RORAVIKUMART
    @RORAVIKUMART ปีที่แล้ว

    What if there in no back edges??

  • @nikhilendrarathore3040
    @nikhilendrarathore3040 4 ปีที่แล้ว +1

    I am a little confused. If we take the parent-child pair of [1,4] then L[4] = 1 = d[1] then L[4] >= d[1]. Does that mean that 1 is also a articulation point?

    • @madhukumarganesh4987
      @madhukumarganesh4987 4 ปีที่แล้ว +3

      the formula isn't valid for root node (node from which we started the dfs).

    • @subashkannan949
      @subashkannan949 2 ปีที่แล้ว +1

      Exception in the root node

  • @kermi123d
    @kermi123d 5 ปีที่แล้ว +1

    nice! but why not from 1 first to 2? i learned that its normal to do it in order. so 1-->2-->3-->5-->6-->3-->4-->1

    • @kermi123d
      @kermi123d 5 ปีที่แล้ว

      @@abdul_bari THX=)

    • @0anant0
      @0anant0 4 ปีที่แล้ว

      The general algorithm for DFS visit is: while not visited, do DFS visit. So it doesn't matter where you start. You will get a diff DFS tree based on where you start and the order of nodes in the adj list.

  • @mohammedadel8948
    @mohammedadel8948 2 ปีที่แล้ว

    Thank you for your efforts

  • @winner9861
    @winner9861 9 หลายเดือนก่อน

    sir, is there any getting the chance of 2 or more articulations points in a single graph
    >>>IF ANYONE KNOW PLEASE TELL ME

  • @adityawath7646
    @adityawath7646 2 ปีที่แล้ว

    I watch his videos as brahmastra, when I didnt understood concept reading everywhere😅

  • @ngn_two6001
    @ngn_two6001 5 ปีที่แล้ว

    Great explanation looking toward more videos about data structures

  • @tadassatafarra7503
    @tadassatafarra7503 4 ปีที่แล้ว +1

    why the L(6), i.e. L of vertex 6 isn't 1?
    we can use the path 6->3->2->1 and because L(1)=1 we can say that L(6)=L(1)=1

    • @mikloscsizmadia780
      @mikloscsizmadia780 4 ปีที่แล้ว +1

      We can only go down on the tree, and ONCE we can go on a back-edge.

  • @rohitkumar-rq6qh
    @rohitkumar-rq6qh 6 ปีที่แล้ว +1

    Thankyou.

  • @PBNinja
    @PBNinja 4 ปีที่แล้ว

    What if the vertex chosen when comparing has no back edge? What would be his Lowest Number? Should it be its discovery time? or the discovery time from its last descendant?

    • @PBNinja
      @PBNinja 4 ปีที่แล้ว

      @@abdul_bari Thank you very much!! You are the best

    • @satishchandramedi9729
      @satishchandramedi9729 2 ปีที่แล้ว

      --------------------------------------- Credits: Ray Wang -------------------------------------------------------
      cp-algorithms.com/graph/cutpoints.html
      I'm still trying to understand it, but I understand it as this: We root the graph arbitrarily, creating a tree-like structure (i think it's called a dfs-tree), then notice 2 observations:
      A node is an articulation point if: it's the root and has more than 1 child OR
      A node is not the root and none of it's children have a back edge to the node's ancestors (aka. there's no cycles that lead back)
      To efficiently check if a node meets the second observation, we use the L and d arrays. Instead of thinking of L as low, think of it as the earliest time we visited a node. If the earliest time we visited a child (aka. L[v]) is less than the time we visited our current node (d[u]) then that means in our dfs, we visited v from an ancestor, which means v has a back-edge to an ancestor.
      More formally: iff L[v] < d[u], u is not an articulation point. Therefore, if L[v] >= d[u], u is an articulation point.

    • @PBNinja
      @PBNinja 2 ปีที่แล้ว

      @@satishchandramedi9729 Thanks for the reply! I already passed the exams though. It was hard but this channel basically helped me a lot!

    • @satishchandramedi9729
      @satishchandramedi9729 2 ปีที่แล้ว

      @@PBNinja That's great! But it might help you during campus recruitment hiring questions!

  • @sat3287
    @sat3287 3 ปีที่แล้ว

    Best explanation.

  • @AnitShrestha
    @AnitShrestha 5 ปีที่แล้ว +1

    Thank you.

  • @SRNR_PODCAST.
    @SRNR_PODCAST. 3 ปีที่แล้ว +1

    a goldmine in youtube

  • @HANUMESHMENGCS
    @HANUMESHMENGCS 4 ปีที่แล้ว

    sir can plz take session about strongly connected complet.

  • @nikhilchunduri7247
    @nikhilchunduri7247 ปีที่แล้ว +1

    jaii Bari sirrrrrrrrrrrrr💥

  • @puspraj4687
    @puspraj4687 4 ปีที่แล้ว +1

    Are articulation point and biconnected components same..??

    • @madmax2442
      @madmax2442 3 ปีที่แล้ว

      Articulation points are the vertexes which when deleted from a graph yields two (or bi) connected components. They are not same but the latter is a consequence of removal of former.

  • @JoffreyB
    @JoffreyB 4 ปีที่แล้ว +2

    what if there's no back edge from a vertex?

    • @jay-rathod-01
      @jay-rathod-01 3 ปีที่แล้ว

      assume there is no 6 vertex so now acc to formula 5>=3 so we still know that the d[3]=3 is still a articulation point. try it.

  • @usamaalioffical
    @usamaalioffical 5 ปีที่แล้ว

    Sir you are a living legend Your videos are awesome one thing that you should also add code in your videos of algorithms and explain it.Hope you will look into this matter.Lots of love from Pakistan

  • @anybody_y
    @anybody_y 4 ปีที่แล้ว

    can we arbitrarily choose any vertex as the root for our DFS?

    • @anybody_y
      @anybody_y 4 ปีที่แล้ว

      @@abdul_bari thanks!

  • @michaeldeguire2410
    @michaeldeguire2410 5 ปีที่แล้ว

    Why is vertex 1 not considered an articulation point since the low(4) = 1 and the num(1) = 1 -> 1>=1 ???

    • @kunalfarmah43
      @kunalfarmah43 5 ปีที่แล้ว

      1 is Root here and root is only considered as an articulation point if it has multiple children. But here it has just 1

  • @mohitgoyal3242
    @mohitgoyal3242 3 ปีที่แล้ว

    how do those conditions work?

    • @satishchandramedi9729
      @satishchandramedi9729 2 ปีที่แล้ว

      --------------------------------------- Credits: Ray Wang -------------------------------------------------------
      cp-algorithms.com/graph/cutpoints.html
      I'm still trying to understand it, but I understand it as this: We root the graph arbitrarily, creating a tree-like structure (i think it's called a dfs-tree), then notice 2 observations:
      A node is an articulation point if: it's the root and has more than 1 child OR
      A node is not the root and none of it's children have a back edge to the node's ancestors (aka. there's no cycles that lead back)
      To efficiently check if a node meets the second observation, we use the L and d arrays. Instead of thinking of L as low, think of it as the earliest time we visited a node. If the earliest time we visited a child (aka. L[v]) is less than the time we visited our current node (d[u]) then that means in our dfs, we visited v from an ancestor, which means v has a back-edge to an ancestor.
      More formally: iff L[v] < d[u], u is not an articulation point. Therefore, if L[v] >= d[u], u is an articulation point.

  • @mrudhul145
    @mrudhul145 2 ปีที่แล้ว

    This is a great video.