1. A method of communicating data by a device in a network of devices, comprising: computing a plurality of different decisions relating to the communication of a first unit of data, each decision being based upon a different rule set for communicating data; computing a final decision as a function of the decisions and a plurality of weight factors, each weight factor corresponding to a distinct decision; selectively performing a communication operation based upon the final decision; determining the correctness of the final decision; and updating the weight factors based upon the correctness of the final decision.