The lattice/FD approach suggested by @LocalVolatility will work fine.
However, since you specifically mention "based on the simulated paths of a Geometric Brownian motion", you could alternatively consider least-squares Monte-Carlo.
More specifically, working backwards in time from the expiry to the inception of the contract, the Longstaff-Schwartz algorithm will allow you to work out continuation values from the simulated paths -- under the hood this conditional expectation is evaluated in the least squares sense using standard regression techniques (hence the original name of the method) but you could also use more elaborate supervised learning methods at this point I guess. The intersection of the continuation value and the intrinsic value for each time $t$ then by definition constitutes the optimal exercise boundary.
The tricky part is that the standard Longstaff-Schwartz algorithm actually identifies a sub-optimal exercise strategy (resulting prices will be low-biased). On the sunny side, general dividend structures can be handled almost seamlessly in Monte Carlo.