まず、AA ルートは間違っているため、次のようになります。
possible_routes =
(
leaving_stations x arriving_stations -
(leaving_stations [intersection] arrivig_stations)
) x leaving_dates
交差操作は、両方の配列に属する要素です
次に、双方向ルートが必要な場合の組み合わせは次のとおりです。
possible_2way_routes =
(
leaving_stations x arriving_stations -
(leaving_stations [intersection] arrivig_stations)
) x
leaving_dates x
(return_dates that later than leaving dates+route time)
'leaving_dates x (return_dates that later than leave days + route time)' は奇妙なことなので、どのような場合でもpossible_2way_routes以上の高い見積もりを計算する方が簡単かもしれません. 最高のカウントは、すべてのreturning_datesが leave_dates よりも遅い場合になるため、次のようになります。
possible_2way_routes <=
(
leaving_stations x arriving_stations -
(leaving_stations [intersection] arrivig_stations)
) x leaving_dates x return_dates
ああ、「出発日+ルート時間より後のreturn_dates」の計算方法を思い出しました。これは:
for each element of leaving_dates {
sum=sum+return_dates that later than ith leaving date+route time}
「ルート時間」の問題はまだありますが...