Graph Colouring Problem - Backtracking

  Рет қаралды 139,932

CSBreakdown

CSBreakdown

Күн бұрын

We go over the infamous graph colouring problem, and go over the backtracking solution!

Пікірлер: 80
@dhananjaywithme
@dhananjaywithme 7 жыл бұрын
Great video man! the clarity! the explanation! :D
@pdzbw
@pdzbw 8 жыл бұрын
such detail, much appreciation~
@thedeependpsycho
@thedeependpsycho 6 жыл бұрын
awesome dude, really cool explanation and the graphics were also pretty helpful. Thanks !!!
@AABB-fb4zy
@AABB-fb4zy 8 жыл бұрын
very clear. organizing helps a lot. thanks very much, such big help.
@starkendeavours7072
@starkendeavours7072 2 жыл бұрын
Thanks Sir! Understood the solution in one go.💯
@fs9050
@fs9050 8 жыл бұрын
What if I want to find out all possibilities of coloring ? all valid combinations ?
@ojaspandav258
@ojaspandav258 6 жыл бұрын
Would the time complexity of this algorithm be (m*n)^n ? Since the for loop in the isSafe function would run n times in every iteration?
@tirthjayswal9895
@tirthjayswal9895 4 жыл бұрын
A really good explanation as well as clean code
@Nikhil7857
@Nikhil7857 8 жыл бұрын
thanks for this good video it helped me to understand programming logic more better
@AkshathGrover
@AkshathGrover 8 жыл бұрын
beautifully explained :) tysm!
@giovanni.n
@giovanni.n 8 жыл бұрын
any videos on forward checking ?
@anweshkrishnanayak2561
@anweshkrishnanayak2561 8 жыл бұрын
Will the algorithm work for directed graphs as well ?
@debayanmitra3729
@debayanmitra3729 4 жыл бұрын
This is amazing explanation. thanks :)
@sairohit8201
@sairohit8201 4 жыл бұрын
minor mistakes but you are a life savior man
@rahullakhotia402
@rahullakhotia402 6 жыл бұрын
how can the diagnals be set as 1 of an adjacency matrix ..it is always 0..
@ceciivanov6152
@ceciivanov6152 4 жыл бұрын
does this solution work for big and more complex graphs lets say for example if we want to color the map of Europe with no more than 4 colors ? i know that Europe can be colored with 4 colors but does that recursive method would make it possible?
@rajdesai2989
@rajdesai2989 7 жыл бұрын
Superb explanation.!
@saifulislamsalim9241
@saifulislamsalim9241 8 жыл бұрын
I think it would be m^n possible ways to color n nodes with m colors. (From the video it is in 2:10 to 2:25 )
@DeveshSehdev
@DeveshSehdev Жыл бұрын
loved the explanation , thnkuuu so much for the video, it was really helpful
@prateekkej2506
@prateekkej2506 7 жыл бұрын
Awesome Explanation. Saved me (Y)
@yamini9612
@yamini9612 4 жыл бұрын
Sir,, can this program work on scilab software??
@ShantanuShinde1
@ShantanuShinde1 5 жыл бұрын
But the algorithm will check all the colors for each vertex even if all nodes are colored. because on returning from last node, the for loop of calling function is still running.
@bakrgroningen
@bakrgroningen 8 жыл бұрын
Terrific explanation
@namanjain1474
@namanjain1474 3 жыл бұрын
Can't see how the code will backtrack as there is no resetting of color. It seems more of a greedy approach that we always try to color the graph with minimum color possible.
@duydangdroid
@duydangdroid 7 жыл бұрын
link to the code?
@joseph_hieunguyen
@joseph_hieunguyen 5 ай бұрын
how do we know m if they dont let you know
@harshilsaini3081
@harshilsaini3081 7 жыл бұрын
why 0,0 adjancy matrix 1
@CSBSIRIKIVENKATASIVASURYASAI
@CSBSIRIKIVENKATASIVASURYASAI 4 жыл бұрын
you nailed it man!!!
@AnkitChoudhary-vh6gj
@AnkitChoudhary-vh6gj 7 жыл бұрын
Great explanation... understood it in one go...keep up the good work!!
@VC-kj9yx
@VC-kj9yx 7 жыл бұрын
your adjacency matrix is wrong from 0 to 0 there is no edge so it should be 0 not 1 and similarly for 1 to 1 and others
@brianpeterson5529
@brianpeterson5529 6 жыл бұрын
right, or add an AND i != k to that if statement bool condition in isSafe()
@mohamedberrimi4850
@mohamedberrimi4850 6 жыл бұрын
the node is adjacent to it self , you should consider that .
@truongvanloc8275
@truongvanloc8275 8 жыл бұрын
In the code, you set x[k] = c; But I don't see the step of backtracking, I don't see where you reset the color if you want to go back ?
@jinxblaze
@jinxblaze 7 жыл бұрын
when u backtrack at k'th node, k-1'th level will have x[k] = c but at k-1 we are limiting ourselves to only k-1 nodes so it doesnt matter what x[k] is coz we will replace it with another color later
@prateekkej2506
@prateekkej2506 7 жыл бұрын
yup. The magic happens at graphColor(k+1). if it returns to parent function, the parent function will try another color.
@mayankgupta2543
@mayankgupta2543 5 жыл бұрын
@@prateekkej2506 i think that return statement at last wont allow backtracking/looping for another color. If the return statement is written outside of the safecheck, then only it will backtrack and try for another color
@mingzhouyang7925
@mingzhouyang7925 2 жыл бұрын
@@jinxblaze but in isSafe they check all the nodes from 0 to n.
@guruprasadc5257
@guruprasadc5257 5 жыл бұрын
Why is this a backtracking problem? We are not making any changes in the previous node's color
@AdityaPratapsingh9125
@AdityaPratapsingh9125 7 жыл бұрын
wouldn't it be m^n possible ways(since for each vertex we have m choices)?...correct me if I'm wrong.
@constructor365
@constructor365 7 жыл бұрын
You're right. And m^n is what is shown in the video. Look again
@YayaB
@YayaB 5 жыл бұрын
great video thnks
@manishmaithani398
@manishmaithani398 7 жыл бұрын
Nice explanation. But I think in graph coloring problem, we do not have the value 'm' from start. Our algorithm should compute the value of m and as well as x[] (that ur algorithm is computing).
@user-bb9lx9gu7c
@user-bb9lx9gu7c 2 жыл бұрын
This one uses m. If it fails, you can try m+1
@sudeshnaC
@sudeshnaC 7 жыл бұрын
Which part of the code shows the backtracking?
@prateekkej2506
@prateekkej2506 7 жыл бұрын
when we call graphColor(k+1) if it fails then it will return to the next iteration in its parent graphColor()'s for loop where it will continue to try other colors and if its does not returns that means its color was right from the first call.
@aavashkuikel1341
@aavashkuikel1341 3 ай бұрын
Thanks a lot
@milenamacedo2066
@milenamacedo2066 2 жыл бұрын
doesn't work for larger graphs
@joelnadar3194
@joelnadar3194 2 жыл бұрын
It R was Really very Useful
@ivandrofly
@ivandrofly 4 ай бұрын
Thanks
@TusharYadav-es1bq
@TusharYadav-es1bq 5 жыл бұрын
shouldnt it be m^n ways ?
@ilmeroliveira238
@ilmeroliveira238 8 жыл бұрын
But if I dont have the "m" before coloring the graph?
@CSBreakdown
@CSBreakdown 8 жыл бұрын
+Ilmer Oliveira Good question. It becomes a much more computationally challenging problem this way, and you have to try the problem with m = 1, m = 2, m = 3... until you find the min value for m where all of the nodes can take colour.
@CSBreakdown
@CSBreakdown 8 жыл бұрын
To add, this is a known NP-Complete problem meaning there does not exist a solution that is polynomial time for large enough n.
@ilmeroliveira238
@ilmeroliveira238 8 жыл бұрын
+CSBreakdown If I make a function that travels the entire array seeking for blank nodes and make my looop runs until it's false(therefore all the nodes are colored)... Might work?
@CSBreakdown
@CSBreakdown 8 жыл бұрын
+Ilmer Oliveira With the backtracking algorithm, isSafe will return false if there aren't enough m (colours) to satisfy. The algorithm will reach the very end without colouring all of the nodes. In the 'if' statement for isSafe on the left block of code, add an else block and check to see if c = m. So if 'isSafe' = false, and c = m, you know that you don't have enough colours for m. Run the algorithm again, but this time make m 1 bigger.
@ilmeroliveira238
@ilmeroliveira238 8 жыл бұрын
+CSBreakdown Can you say if I understood the idea? pastebin.com/7KbaYKGF
@farahuzma3920
@farahuzma3920 7 жыл бұрын
(0,0) of adjacency matrix shud be 1.. similarle for 1,1 2,2 n 3,3
@datawarehouse5961
@datawarehouse5961 8 жыл бұрын
Best graph colouring video on youtube !
@soothingexperience7611
@soothingexperience7611 6 жыл бұрын
awesome
@SarbotamChatterje
@SarbotamChatterje 8 жыл бұрын
can u please explain c==x[i] part?
@CSBreakdown
@CSBreakdown 8 жыл бұрын
+Sarbottam Chatterjee Hi, so x[i] is an array that holds colors if the nodes that have already been colored. So c == x[i] is checking if the current color that you are trying to place (c) is equal to the color value at x[i] (the already colored nodes). If 2 nodes are adjacent (meaning if G[k][i] == 1 AND the adjacent node at x[i] has the same color, then it returns false because we can't place the same colour next to it.
@SarbotamChatterje
@SarbotamChatterje 8 жыл бұрын
Thant clears my doubt. Thanks for making time to reply to my comment. Do you have a Traveling Salesman Problem solution using Dynamic Programming?
@CSBreakdown
@CSBreakdown 8 жыл бұрын
+Sarbottam Chatterjee I don't unfortunately. The travelling salesman problem is NP-Complete. If I had a true solution to the problem, I would be the worlds richest man! Travelling salesman is best done with approximation algorithms using current technologies. With a large enough value of N, travelling salesman cannot be accurately solved. Maybe there are solutions out there for small enough values of N, but I'm not aware of one and haven't attempted the problem.
@rameshpal8762
@rameshpal8762 3 жыл бұрын
Helps in today's exam
@shobhitaagarwal8242
@shobhitaagarwal8242 7 жыл бұрын
There is no backtracking step in the graphColor() method. x[k] should be set to 0 and tried for the next color c in the for loop.
@prateekkej2506
@prateekkej2506 7 жыл бұрын
actually there is .when we call graphColor(k+1) if it fails then it will return to the next iteration in its parent graphColor()'s for loop where it will continue to try other colors and if its does not returns that means its color was right from the first call.
@lquqpgqr
@lquqpgqr 5 жыл бұрын
Is it possible to replace this recursion with for loop.
@21stcenturydigitalje
@21stcenturydigitalje 7 жыл бұрын
In the future you could use 'a', 'b', 'c', 'd' for node names and 'red', 'green', 'blue' for color names so you don't have to use 0, 1, 2, 3 for everything - it would make this video even easier to understand
@aaratimounika6834
@aaratimounika6834 5 жыл бұрын
Nice..
@anubhavgupta2831
@anubhavgupta2831 8 жыл бұрын
best graph coloring video :D
@ZiiiP2142
@ZiiiP2142 7 жыл бұрын
There's no backtracing in the code. :D
@majedulislam187
@majedulislam187 8 жыл бұрын
very nice !!!!!!!!!
@NS-gr9cy
@NS-gr9cy 3 жыл бұрын
Its greedy and not backtracking
6.3 Graph Coloring Problem - Backtracking
15:52
Abdul Bari
Рет қаралды 1,1 МЛН
An Application of Graph Coloring
13:44
Katherine Heller
Рет қаралды 29 М.
Double Stacked Pizza @Lionfield @ChefRush
00:33
albert_cancook
Рет қаралды 86 МЛН
Iron Chin ✅ Isaih made this look too easy
00:13
Power Slap
Рет қаралды 35 МЛН
Задержи дыхание дольше всех!
00:42
Аришнев
Рет қаралды 3,4 МЛН
How Dijkstra's Algorithm Works
8:31
Spanning Tree
Рет қаралды 1,3 МЛН
Graph Coloring Algorithm in Python
14:23
NeuralNine
Рет қаралды 6 М.
The Backtracking Blueprint: The Legendary 3 Keys To Backtracking Algorithms
13:44
M-Coloring Problem #Graph #Backtracking #MUST DO #AMAZON
17:58
Code with Alisha
Рет қаралды 12 М.
Applications of Graph Colouring
9:29
Rhyd Lewis
Рет қаралды 56 М.
The Art of Linear Programming
18:56
Tom S
Рет қаралды 639 М.
N Queens Problem in Back Tracking - Method, Example |L-12||DAA|
10:58
Spectral Graph Theory For Dummies
28:17
Ron & Math
Рет қаралды 48 М.
Graph Coloring Problem in Back Tracking - Method, Example |L-14||DAA|
12:31
Graph Colouring Problem | Graph | [CODE + Explaination] | Amazon | GFG 🔥
19:38
Yogesh & Shailesh (CodeLibrary)
Рет қаралды 27 М.