I construct a polygon with n sides. I have a point P(x,y) that is inside the polygon. I want to draw normal from Point P to edge/edges of polygon
For each edge:
1) finding a normal for a line-segment is is trivial.
2) but in your case, you also want to identify the point S that lays in that edge and is at the closest distance from P, so you can "put" the normal beginning at S and passing trough P. It means that when you find S, the line segment SP that goes from S to P coincides with the normal you are interested in.
How shall I select subset of edges (from all edges of polygon) that can be chosen to draw normal from point P
3) for each edge, you have to do the following. When you found the point S in the edge that is the closest from P, you made yourself a new line-segment available, which is SP.
4) so, test whether or not the line-segment SP intersects with any of the other edges (i.e. a simple line-segment vs. line-segment intersection test). If yes, then you know that the edge where S belong to, is not one you can chose a normal from that does not crosses other edges before hitting P or passing trough the exterior of the polygon.