choose random number for the initial weights
while stop condition is false, do step2-8
for each input vector do step 3-5
for each output node, compute
For all output node within a specified neighborhood of J node
update learning rate
reduce radius of topological neighborhood at specified times
Test stopping condition