✨ ベストアンサー ✨
Mustには<〜しなくてはならない>という意味の他に<〜に違いない>という意味があります。
そして、must have 過去分詞の形になると<〜だったに違いない>という意味になってしまいます。
もし仮に③を入れたとしたら
トレーシーは彼が去る前にケビンに話しかけたに違いない、しかし彼女はしなかった。
となり前後で言ってることが矛盾してしまいます。
よって④should have talked<話すべきだった>が答えになります。
※ちなみに<〜しなくてはならない>を<〜しなくてはならなかった>という意味にするには、had to doを使います!
ありがとうございます!!