One solution could be to do a triangulation [0]. Postgis has such function, based on GEOS which uses JTS Topology suite. Everything is open source, so you can download the source code to get an example.
You would get a collection of triangles. From this, you would just unify the multipolygon to a single polygon. Then, you can use a simplification algorithm such as Douglas-Peucker [1] also implemented in Posgis.
I hope it's a start!
[0] http://en.wikipedia.org/wiki/Delaunay_triangulation
[1] http://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm