 So, you can see that this algorithm is slightly sub-linear, slightly better than the linear space that is required by the BFS and DFS and it is quite efficient, polynomial time is considered quite efficient in from the perspective of complexity theory. So, could this be improved that is the central question, can we have a polynomial time algorithm for reachability that requires space which is better than what is provided by the BBRS algorithm and in this regard this is the question that we try to answer. So, for general graph obviously this is the best known and there has been no developments but for grid graph that is a restricted class of graph there has been better algorithms are known. So, the first such algorithm was presented by a Sano endure in 2011 who showed that reachability in grid graphs can be solved in approximately root in space and polynomial time. Now, this was further improved by Ashida and Nakagawa in 2018 and they improve the space complexity to n to the power one-third and there comes our result we further improve the space complexity to roughly n to the power one-fourth. So, essentially this is our result that for every epsilon for every small epsilon you can you can select epsilon as small as you want there exists a polynomial time algorithm that decides reachability in grid graphs using n to the power one by four plus epsilon space. Now, okay one thing more that we are talking about the directed reachability problem because an indirect reachability problem has been solved in lock space by a researcher called Dean Gold. So, we are only interested in the directed reachability problem. Yeah, the running time depends on epsilon we treat epsilon as constant. So, n is the number of vertices in the grid. The number of vertices in the grid graph. Yeah, but since the reachability in undirected graph can be solved in lock space by Dean Gold we could just I mean yeah remove the isolated vertices they do not have any significance. So, yeah so let's see how how do we solve reachability. So, there is an important concept of a separator in a graph. The separator is basically a set of vertices which we remove from the graph. The graph gets divided into roughly half components or you can say it's divided into components whose size is a fraction of the original graph. So, the original the algorithm the first algorithm of root n size root n that solve reachability of in root n space used this idea that you divide the graph into the small components. And now what happens is now if you have such a separator then any path from vertex in one of the component to a vertex in other component would necessarily use one of these vertices of a separator. So, this is an important property. Now grid graph the size of the grid graph I mean in the in a grid graph it's known that a separator can have at like order root n size separator would exist in the grid graph. You would basically select the middle middle row or middle column and that would act as a separator of the grid graph. So, so as I know and do or you use this idea you have to solve reachability in grid graph using the separator. Basically they use this separator and to divide the graph into components solve each of the components recursively and then combine it and they do it in a space space bounded setting. So, basically you cannot store each of these components you have to kind of use solve it again and again whenever you require a solution for the smaller components. So, that was the initial algorithm by Asano Andrew. So, how to improve the solution? So, the the Ashida and Nakagawa gave an improvement to this algorithm. What they did was first there is some sort of preprocessing to make the graph smaller. So, you have a graph G of n vertices they preprocessed it. So, to make a graph G prime of n to the power 2 by 3 vertices. Now, this G prime was not a was not a grid graph it was it was it turned it was a planar graph, but planar graph also had a separator of root n size. So, they basically what happens is then the algorithm implicitly does this is that they find a separator of this n to the power 2 by 3 size graph and then solve it and use the basically the same divide and conquer technique that I previously explained. So, that is how they improve the space bound to n to the power 1 third. Let us see how we approach this problem. So, what we initially do is we partition the grid graph original grid graph into subgrids of size n to the power 1 minus 1 minus alpha. I am here taking alpha as some constant and what we do is we solve these subgrids though by solving the subgrids I mean that in each of the subgrid we only consider the vertices of which are at the boundary and if they have a path from one vertex from one vertex of the boundary to the other vertex at the boundary using the vertices of only that subgrid then we add an edge in this new graph. So, we call this graph an auxiliary graph. So, I have given an example I mean it is quite straight forward how we construct it. So, this auxiliary graph will have size root n to the power 1 by 2 plus alpha by 2. So, suppose now if this auxiliary graph had a separator of again root n size we would have got a n to the power 1 by 4 roughly n to the power 1 by 4 algorithm, but unfortunately this does not happen the subgrid might have a very large separator of root n not n to the power 1 4. Yes, the source and target nodes are pre-specified and we simply assume that they are present in one of the boundaries because if it is not present on the boundary it could be taken care of I mean it is not it is not much of a big deal. Yeah, but this smaller grid graph this auxiliary graph might have a quite large separator. So, what do we do this? We first see we look at some of the properties that this auxiliary graph might have one is this that in this auxiliary graph if we pick a block of this auxiliary graph and see if these two edges that they cross each other at a certain point then it is guaranteed that there will be two more edges from the tail of the first edge to the head of the other edge from the tail of the second edge to the head of the first edge it is guaranteed because I mean if they are crossing it it would mean that they their paths would share a common vertices somewhere in the original graph and through that vertex those two new parts can be derived. The other observation which is basically an expansion of this if suppose a particular edge has been crossed by two edges or say multiple edges then the then consider the edge even which is closest to the tail of the of this edge f then there will exist an edge from the tail of even to the head of e2 and this is true if the edge f is being crossed by a multiple edges even to ek as well there will exist an edge from the tail of the for lowest edge to every other head of every other edges algorithm is basically this think of your favorite traversal algorithm if if you know that both these even and e2 are reachable from our original vertex s then you only need to traverse through one of the one of the vertices to the other side of f this is what our observation is and and this is how this is what we use to solve our reachability problem so we define a new component due new device called pseudo separator now what is the what is does is it's like a separator but quite not like it it divides the graph into small components but now the now in case of separator only one thing could be possible that if there is a path from one component to other component it would have it would pass through a vertex of the separator for the pseudo separator we require that the path could either either take a vertex of the separator or it could cross one of the edges of the pseudo separator now once you have such a pseudo separator you could think of that traversal algorithm we could simply find a pseudo separator divide it and so so let's look at any any suppose we have any vertex induced sub graph g alpha which has an H vertices so so because we require a pseudo separator of of every components as well we don't only require the pseudo separator of the of the graph g alpha we require once we divide the graph into multiple components these components are sub graph of g alpha and we require a we require such a separator for them also what we prove basically in our result is that that such a pseudo separator exists and it can be constructed in a space efficient manner and this is quite the this this this I will briefly comment on how we construct this pseudo separator what we do basically is we we kind of become maximal planar graph out of out of the graph that we have we pick maximal set of edges which makes the graph planar and then we find a separator of that maximal set of edges and we tweak it a little bit it turns out that it would act as a perfectly well pseudo separator so we find a pseudo separator and we construct our algorithm is simple we construct a pseudo separator of size of basically roughly root h size where h is the size of the original thing that we are looking at and then we divide the graph using see put pseudo separator now to combine this we first solve each of the components recursively and then since we talked about that traversal algorithm that we only require the edge that was closest to the tail of of an edge of the pseudo separator so we traverse using that that that particular that particular vertex so so I'll briefly restate our contribution so we basically develop a better algorithm for for reachability in grid graph that improves the space bound from n to the power 1 by 3 to n to power 1 by a 4 plus epsilon where epsilon can be as small as you like and we also introduce a new device this pseudo separator the workplace several open question is that can other classes of craft use this pseudo separator or something similar to pseudo separator something similar idea to to solve the reachability problem or why stick to reachability problem can be used so it can be used to separate or to solve other block problems in a space bounded setting or probably a different setting say perhaps can be solved matching I'm not sure I mean that is what we could look at and the thing that I am currently looking is can we improve the reachability for planar graph itself so currently it's known that planar graph the reachability can be solved in polynomial time that uses root and log n space so so and and see that our algorithm doesn't really use the fact that our graph was a grid graph it just used the fact that we could get this initial auxiliary graph fast so if you could somehow get this initial auxiliary graph of the planar graph as well then perhaps we could we could perform we could we could give a better space bounded algorithm for planar graph okay so these are the references no so obviously planar graphs are super set of grid graph but I mean so you require an embedding of the grid graph as well and it it can be proven that this specific reachability problem in planar graph can be reduced to grid graph I mean in log space however such a reduction would quite blow up the number of vertices by I guess n square or n to the power 4 but so the R algorithm wouldn't actually improve so one one way to improve the time with the space complexity of planar graph would be to try and come up a reduction from reachability in planar graph to a reachability in grid graph such that the number of vertices does not blow up substantially so we need to kind of do this recursive step right so we are dividing the graph into small components and then we are recursing over each small components so we need to make the components small enough so that the so that the depth of regression is constant and for that we need to slightly increase the size of the separator that's what it does in the time complex in the space complexity you know in time complexity I guess it was something 1 over epsilon or something like that but we treat it as constant whether it is reachable but I think I mean this algorithm be modified to solve for finding out the same space constant yes so no I'm assuming that the vertices are on placed on a grid and the edges are like you could have an edge or you could not have an edge but the edges can occur yeah you could see that I mean I defined the diff grid graph in a no no we don't require that all the edges are there but the edges can occur only between the edges and edges vertices that's why we are calling it yeah okay okay so how well in the earlier works such a definition was concerned I mean considered so perhaps in the other settings such a different definition is used in this we would have to look into it I mean I think it would work but I think it should work yeah perhaps you could you could embed this grid on on a surface of any genus I think but I mean I have to follow through I have to see if there is any problem I'm not sure okay I'm not sure if that would help so we tried solving it for three dimensional grid graph but it didn't have this property that if two edges are crossing each other then there would be an edge from tail to head of other so three dimensional grid no no no we were using this auxiliary graph right that we