2017-03-24 20 views
2

私はの実装を進めています。遺伝的アルゴリズム 私はASP.NET MVC4 Webアプリケーションを使用してコードを実行します。利用できるタクシー asp.net mvcは何回もループした後、何もしません。

  • 最大世代
  • 最大収束の

    私のコードは、ユーザーの入力ならば完全に少ない30、利用可能なタクシーの数を動作します:

    入力ユーザーが

    テストに基づいて100を下回る最大世代。

    問題はです。ユーザーの入力が上記の条件を超えた場合、私のコードは約18〜40の反復ループしか働かず、何もしません。

    誰かが私にこれを解決する方法を説明できますか? 私はこの問題に関連するいくつかの研究を行ってきましたが、答えはコントローラに非同期を追加することですが、それは役に立たなかった、私の問題は依然として存在する。ここ

    は私のコントローラの全体的なワークフローです:

    [HttpPost] 
        [ValidateAntiForgeryToken] 
        public async Task<ActionResult> Index(ProsesGADTO dto) 
        { 
         if (ModelState.IsValid) 
         { 
          - Some Genetic Algorithm Process 
    
           while (maxGeneration > countGeneration && checkConvergence < maxConvergence) 
           { 
            countGeneration++; 
            - Extended genetic algorithm process 
    
           } 
    
          return RedirectToAction("HasilGA"); 
         } 
         else return RedirectToAction("Index"); 
        } 
    

    私はそれをよりシンプルにするために、質問を編集しました。 と私は最終的な実装のために非同期を使用しませんでした。

  • +0

    「それは何もしない」とはどういう意味ですか?メソッドを終了するか、ハングしますか?どのようにそれが何もしないと言うことができますか? –

    +0

    @AndriiLitvinovは多分、私はコードでブレークポイントを作った、18反復の視覚スタジオのデバッグプロセスは、ブレークポイントで一時停止していませんでした。 – Shasapo

    +0

    アクションにログを書き込んで、何が停止しているのかを確認してください。メソッドの先頭と最後、およびメジャーコードブロック内にログを書き込みます。また、デッドロックと同様の現象が発生します。たぶんあなたのソリューションを投稿できますか?なぜあなたはTask.Delayが必要ですか? –

    答えて

    0

    コードに無限ループがあります。ループを終了する条件を満たしていない理由を調べる必要があります。

    関連する問題