2

Javaでチューリングマシンシミュレータプログラムの大規模なテストケースを考え出そうとしています。

プログラムは入力ファイルからデータを読み取り、テストケース文字列とチューリングマシンルールのリストに基づいてシミュレーションを実行します。以下のルールを実行した後、プログラムは、文字列が受け入れられたか、拒否されたか、または指定されたステップ数で停止しないかどうかを出力します。

プログラムは基本的に、入力文字列を指定して、紙の上でチューリングステートマシンを手動で歩くシミュレーションです。

このプログラムのテストは難しいことがわかりました。このプログラムは、すべての基本的なチューリングマシン、および比較的小さなテストケースに最適です。非常に大きなテスト文字列(〜30文字)、5000ステップ、およびいくつかの多数またはルールと状態を指定して、このプログラムをテストしたいと思います。

誰かが私がこれのための良いテストケースを考え出すのを手伝ってくれるかどうか疑問に思いましたか?

サンプルテストケース

7 15 //number of states and number of rules
0 0 3 B R //[current state, transition character, destination state, value to write, direction to move]
0 B 2 B R
0 x 2 x R
3 x 3 x R
3 B 1 B R
3 0 6 x R
6 x 6 x R
6 0 4 0 R
6 B 5 B L
4 x 4 x R
4 B 2 B R
4 0 6 x R
5 0 5 0 L
5 x 5 x L
5 B 3 B R
3 15 //number of testcases and number of steps to come to a halt
00
000
000000

よろしくお願いします

4

1 に答える 1

2

実装のストレステストを行うためのテストケースを探している場合は、ビジービーバーのチューリングマシンを確認することをお勧めします。チューリングマシンは、指定された数の状態と、可能な限り長い時間実行されることがわかっているテープシンボルを備えたチューリングマシンです。終了する前に。これらのマシンの実行が完了するまでにかかる時間の正確な範囲はわかっているため、多くの時間とスペースを使用することがわかっているTMでシミュレーターをテストし、ステップカウンターが正しく機能することを確認できるはずです。

お役に立てれば!

于 2013-02-24T18:57:39.177 に答える