Algorithms for Virtual Output Queued Switching