Optical Adaptive Associative Computer Architectures