1. A method for scheduling uplink data transmission for a plurality of terminals in a wireless communication system, comprising: forming one or more sets of terminals for possible transmission on a channel, wherein each set includes a unique combination of terminals and corresponds to a hypothesis to be evaluated; evaluating performance of each hypothesis; selecting one of the one or more evaluated hypotheses based on their performance; and scheduling the terminals in the selected hypothesis for data transmission on the channel.