This document summarizes an algorithm for optimal three stage flow shop scheduling with processing times, set up times, and transportation times that have associated probabilities. Jobs are processed in two disjoint job blocks in a string. The algorithm introduces two fictional machines to reduce the problem to a standard form. It then calculates processing times for equivalent jobs and job blocks on the fictional machines. The jobs are then sequenced to minimize total elapsed time based on their processing times on the fictional machines.