This research, a new thrust-allocation algorithm based on penalty programming is developed to minimize the fuel consumption of offshore vessels/platforms with dynamic positioning system. The role of thrust allocation is to produce thruster commands satisfying required forces and moments for position-keeping, while fulfilling mechanical constraints of the control system. The developed thrust-allocation algorithm is mathematically formulated as an optimization problem for the given objects and constraints of a dynamic positioning system. Penalty programming can solve the optimization problems that have nonlinear object functions and constraints. The developed penalty-programming thrust-allocation method is implemented in the fully-coupled vesselrisermooring time-domain simulation code with dynamic positioning control. Its position-keeping and fuel-saving performance is evaluated by comparing with other conventional methods, such as pseudo-inverse, quadratic-programming, and genetic-algorithm methods. In this regard, the fully-coupled time-domain simulation method is applied to a turret-moored dynamic positioning assisted FPSO (floating production storage offloading). The optimal performance of the penalty programming in minimizing fuel consumption in both 100-year and 1-year storm conditions is demonstrated compared to pseudo-inverse and quadratic-programming methods.