1. A neural network applied to an optimization problem comprising: a plurality of artificial neurons for outputting signals which respectively correspond to a plurality of input signals; a plurality of artificial synapses for setting weighting values which correspond respectively to each of said artificial neurons according to output signals which are output from said artificial neurons, and for respectively outputting said set weighting values to each of the corresponding artificial neurons; monitor means for determining whether said output signals satisfy a constrain condition which corresponds to a desired result to be output by said neurons when the output signals from said artificial neurons become substantially constant and for outputting a control signal if said output signals do not satisfy the constrain condition; and weighting calculating means for changing weightings of said artificial synapses which respectively correspond to said artificial neurons in accordance with said control signal output from said monitor means whereby said monitor means outputs said control signal to said weighting calculating means if said output signals from said artificial neurons do not satisfy the constrain condition.