 Hello, my name is Seungjun Lee, and I come from Hwang University of Science and Technology, which is in South Korea, and I'm talking about maximum area of tangles in a simple polygon. First, about this problem, in computational geometry, finding a largest figure of certain prescribed shape contained in a container is very fundamental and important problem. So there are many studies about finding largest basic shape such as triangle, rectangle, or other shape contained in convex polygon or simple polygon. Here convex polygon means polygon which consists of convex vertices, and convex vertices means a vertex, a vertex which has internal angle is less than pi, and of course there is a vertex which has internal vertices bigger than pi, we call it reflex vertex, and here is the example of convex polygon and finding the largest triangle in this convex polygon, and here is example of finding the largest rectangle in convex polygon. Our problem is finding the largest rectangle in simple polygon, and simple polygon means polygon without intersection of edges. Here left figure is polygon, but there is intersection, so it is not simple, but right polygon has no intersection of edges, so it is simple polygon, and our goal is finding this kind of rectangle in this simple polygon. There are many previous research, and first we can distinguish rectangle as axis parallel rectangles and arbitrary orientation rectangles. In the case of axis parallel rectangles, it can be found largest axis parallel rectangles in log n time if the container is convex polygon, with assuming the convex polygon is already stirred in the memory, and in the case of simple polygon, we can find largest area axis parallel rectangle in n log n time using divide and concord algorithm, and if there is a hole in the simple polygon, we can find largest rectangle in n log square time also using linear space, and also there is study about arbitrary orientation rectangle, and in the convex polygon, we can find the largest rectangle arbitrary orientation in n cubic time using linear space, and there is no result about arbitrary orientation rectangle in simple polygons, and this is our result. We give an algorithm that compute the largest area arbitrary orientation rectangle in n cubic log n time using k n square space. Here, k is the number of reflex vertexes in the polygon. Reflex vertex means non convex vertex and convex vertex means inner degree is less than pi. And to do this, we classified largest rectangles into six types, and first there is a we could contact the intersection of rectangle and polygon boundary, and there are two types of context. First one is corner context, which is the intersection of polygon and rectangle. There is an intersection on the corner of rectangle, and if the intersection lies on the side of rectangle, we call the side contact. And here is a six space classification, and note that type A and type F has no side contact, and other type has or contains side contacts. And we have to know some concepts. First, a rectangle, we call rectangle is local maximum rectangle, shortly LMR, if the area function among rectangles inscribed in P gives local maximum. We can regard rectangle as a point in six dimensional space, and so the area function is from the six dimensional space to real domain, and so we can consider this kind of rectangle. And also, we call a set of context G is a determining set of context, shortly DS, if the largest rectangle satisfying G has finite area and the largest rectangle, satisfying any proper subset of G has greater or infinite area. Intuitively, this means the minimal set of context that can determine the largest rectangle. And next, imagine there is a rectangle R that satisfies DSG. Here satisfy means a rectangle R have context that elements of G, or if all elements of G appears on the context of R, then we say a rectangle satisfies DSG. And for this kind of rectangle, if a rectangle have another context other than G, then we call it breaking configuration of G, and if this rectangle is LMR, but no other context other than G, then we call it maximal configuration. So, from this definition, we can get following LMR on LMR, satisfying G is one of maximal configuration or breaking configuration. So, let's start from type A. Type A is most simple case, because type A is two corner, two opposite corner, corner context on the convex vertex of P. And this is, there is LMR, every LMR of type A is square, because the diagonal is fixed, so there is fixed diagonal, then the only, of course, the largest rectangle is square. So, using this fact, we found all LMR of type A by constructing the ratio team data structure, which can be constructed in linear time and space, by Hoss-Berger and Shory's one, if you use, and which support ratio team query in log n time. Here, ratio team is given a ray from some point to direction, find the first intersection of this ray and boundary of polygon. This is ratio team query. And so, we construct this data structure and then for every pair of convex vertexes of P, we here, we only consider visible pair and visible means V, V prime, the line, the segment V, V prime, totally lies in polygon P. So, we call, then we call it visible and for this kind of all pairs, we determine the square with diagonal V, V prime is contained in P by using of a ratio team data structure. So, what is supported in the diagonal is not a square, but a rectangle, then you are saying it violates local maximality. Yes. So, I didn't quite get why it violates. Maybe the definition of locally maximum was not very clear. Because if it is not a square, then we can rotate, rotate and we can get the bigger area. The former proof is in our paper. The definition of local maximality. Locally maximality is for not all rectangle, rectangle lies in polygon. Then we restrict rectangles, right? Then for this restriction, there is locally maximum points in… You fix the contact points. No, no, no. I don't have to fix. Just for every possible rectangles. And using this, we can find the LMR of type A in n minus k square, log n time using linear space. Here n minus k is number of convex vertices. And since we check every pair of convex vertices, we have to use n minus k square pair of convex vertices. And for each pair, we need to use ratio team query. So, it takes log n time. From type B to E, we use some special data structure called staircase. Former definition of staircase is following. For point U in P, we define staircase SU as the set of point P in P with x coordinates and y coordinates of P is less than or equal to x coordinates of U and y coordinates of U such that the axis parallel rectangle with diagonal U P is contained in P, but no axis parallel rectangle with diagonal U Q is contained in P for any point Q with which is left and bottom side of P. Intuitively, this is a maximal set of maximal points that can be then make the rectangle with diagonal U P is inside polygon P. I will show the picture later. And the staircase of point U in orientation set is defined as following. The staircase of U in orientation in the rotated coordinate system by set of degree counterclockwise around the origin. Here is the staircase, picture of staircase. The blank line is polygon boundary and red line is staircase. Here, the eta U and delta U means the leftward and downward ray emanating from U and eta bar delta foot of each rays. Then the staircase starting from eta U to delta U to delta bar U and the staircase is x y monotone chain of line segment. So, and we construct and maintain this staircase while rotating the coordinate system. Then, of course, the combinatorial structure of this staircase changes and we distinguish this all changes by event. Here is event of staircases. Each column means one type of event. First column is event that vertex V disappears from staircase and second column is event that vertex V appears on staircase while rotating and third column is on edge appears and disappears from in on staircase. And these three events we call step event and there is another event called ray event that is eta U or delta U meets vertex of P. Then we call it ray event. As you can see at the ray event there can be at most ON changes of segment and note that the step event is continuous change, but ray event is not continuous change. And each ray event there can be at most ON change and we call each change each segment is made by shift event. So, there are at most ON shift events for given ray event. So, first step event on one vertex or one edge can appear at most ON time because if once it disappears by some other point then it can be appeared again after this point get out of the staircase. So, each vertex and edge can be appear at most ON time. This means there are at most n square step events while we maintaining S eta U. And in the case of ray event it is easy to show that there are ON ray events because it is delta U meets vertex and eta U meets vertex. So, and each ray event can be ON shift event. So, there are totally n square shift events while maintaining staircase. So, we are following lemma the number of total events that occurs on S eta U during the rotation is ON square. So, we compute all possible events in advance that there are k n square R. Our algorithm computes staircase of for every starting from every reflex vertex U. So, there are k reflex vertex and for each reflex vertex there can be n square events. So, totally we compute k n square events in advance and we serve them and stir it into event map. And so constructing this event map takes n k n scale log n time because we serve them. So, we are following lemma once the event map is constructed then the staircase for U can be maintained over all events during the rotation in n scale log n time using n square space. The reason why is we have n square events and we can handle each event by log n time because using binary searching on event map. And we also construct the some candidate events called event queue which can be at most all n square complexity and this event queue ensures that the first element always happen but we don't know the other events really occurs a lot but when the first event happen we update this event queue so we can every time we ensure the first element of queue occurs. This way we maintain staircase. And as I said we constructed for every reflex for staircase for every reflex vertex so it takes k n scale log n time and k n scale space during the rotation for all staircases. Now I will talk about how to find the LMR of type B to E. As I said type B to E has at least one side context on each side and this side context must be a reflex vertex. So, we construct for each reflex vertex we construct and maintaining two staircases one is a set of U and the other is a set of plus pi over 2 U. Here the red line is staircase and left side of U is a set of U and right side of U is a set of plus pi over 2 U. Then for each event in a set of U and a set of plus pi over 2 U we find out DSG which becomes infeasible after the orientation corresponding to events. What does it mean is that here is polygon vertex and after this angle set up this vertex appears to staircase so that now it is impossible to make a rectangle with contact U, L, B, R. Now it is possible but after this angle because of these new vertexes it is impossible to make rectangle with only using U, L, B, R. So we capture this kind of event every time and we found the DS, U, L, B, R and we compute the maximal configuration and breaking configuration of this set U, L, B, R. This can be done in constant time because the area function has only here. We can find the maximal configuration and breaking configuration in constant time because the area function of rectangle satisfying G is only one variable the angle set up so there are constant number of extremar value and we can get the maximal configuration from this extremar value so it takes only constant time and we have to feasibility check because after we finding some orientation which is maximal candidate of maximal configuration and we don't know it is really like inside here so we have to check using ray shooting data structure so it takes log n time and so our algorithm computes all elements of type B to E in KN scale log n time using KN scale space. The time and space is parallel because of the rebaking staircase and maintaining staircase and last one is type F. Type F is like this three or four corner context on rectangle without side context and first for finding the lmr sub type F we first compute all orientation such that the breaking configuration of type F of course actually this is there are n cubic such event such orientations so we capture all that n cubic such orientations and for each orientation we found the DS which have breaking configuration at that orientation and found similarly found the maximal configuration and breaking configuration of that DS then we can find the lmr sub type F in n cubic log n time using a linear space actually in the case of convex polygon convex polygon has every vertex is convex so we don't have to consider the type B to E so the only our concern is type A and type F so if we want to find the maximum area rectangle in convex polygon we just apply type A and type F which complexity is time complexities and cubic log n time and linear space which is actually which can be improved to n cubic time but I will skip the detail so we have this conclusion we can find the maximum area logistic rectangle contained in a simple polygon with n vertices possibly with horse in n cubic log n time using k n square space where k is number of reflex vertices and actually I will explain the case of just simple polygon not horse but if there is horse we can do very similar way with some little techniques and so our conclusion is it is also possible in the same time and space complexity and it is shown that there can be omega n cubic combinatorially distinct rectangles even piece convex polygon so we wonder if our algorithm can be improved because if the algorithm calculate every combinatorially distinct rectangle then it needs at least n cubic time so we wonder it thank you Is there big difference between simple rectangles and general rectangles? Actually left side is general rectangle and right side is simple polygon but we can divide general polygon into some simple polygons so the reason why we use simple polygon is for our convenience yes it can apply easily