I don't know, whether this is an already known algorithm and I also don't know how optimal the resulting partioning will be, but its description and implementation are simple:

- identify the set of inflex points, i.e. where a right-turn is made when going around the polygon counter clockwise  

- calculate the nested convex hull of the inflex point set  

- cut the polygon along the edges of the nested convex hull, that are inside the polygon