Double auction refers to a market system where multiple buyers and sellers submit their bids for standardized units of well-defined items or securities by stating how much and at what price they will trade. In double auction, each trader can express the subjective preference for the traded goods by using a utility function. Thus, how to property define the utility for representing each trader's preference is an important issue for research on double auction. Most of the previous studies on double auction just suggest linear or quasi-linear utility functions for traders and assume that buyers as well as sellers each have identical utility functions. However, in practice, each buyer and seller in a double auction market may have diverse utility functions for trading goods. Therefore, a flexible and integrated double auction mechanism that can integrate all traders' diverse utility functions is necessary. In particular, a flexible mechanism is more useful in a synchronous double auction because the participating traders can properly change utilities in each round of multiple bidding rounds. Therefore, in this paper, we propose a utility-based double auction mechanism, namely a flexible synchronous double auction system where participants can express diverse utility functions on goods for which they are bidding. In order to optimize the total market utility which consists of multiple complex utility functions of traders, this proposes a genetic algorithm (GA) as a tool for solving a nonlinear optimization model. We show the viability of the proposed mechanism through a web-based prototype system and empirical experiments. (c) 2006 Elsevier Ltd. All rights reserved.