Initial
This commit is contained in:
39
experiments/maze_solver/SimpleDemo.cs
Normal file
39
experiments/maze_solver/SimpleDemo.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
|
||||
class SimpleDemo
|
||||
{
|
||||
static void Main()
|
||||
{
|
||||
Console.WriteLine("=== Space-Time Tradeoff Demo ===\n");
|
||||
|
||||
// Create a simple 30x30 maze
|
||||
int size = 30;
|
||||
var maze = MazeGenerator.Generate(size, size);
|
||||
|
||||
// Run BFS (uses more memory, less time)
|
||||
Console.WriteLine("1. BFS (O(n) space):");
|
||||
var sw1 = Stopwatch.StartNew();
|
||||
var bfsResult = MazeSolver.BFS(maze);
|
||||
sw1.Stop();
|
||||
Console.WriteLine($" Time: {sw1.ElapsedMilliseconds}ms");
|
||||
Console.WriteLine($" Memory: {bfsResult.MemoryUsage} bytes\n");
|
||||
|
||||
// Run memory-limited algorithm (uses less memory, more time)
|
||||
Console.WriteLine("2. Memory-Limited DFS (O(√n) space):");
|
||||
var sw2 = Stopwatch.StartNew();
|
||||
int memLimit = (int)Math.Sqrt(size * size);
|
||||
var limitedResult = SpaceEfficientMazeSolver.MemoryLimitedDFS(maze, memLimit);
|
||||
sw2.Stop();
|
||||
Console.WriteLine($" Time: {sw2.ElapsedMilliseconds}ms");
|
||||
Console.WriteLine($" Memory: {limitedResult.MemoryUsage} bytes");
|
||||
Console.WriteLine($" Nodes explored: {limitedResult.NodesExplored}");
|
||||
|
||||
// Show the tradeoff
|
||||
Console.WriteLine("\n=== Analysis ===");
|
||||
Console.WriteLine($"Memory reduction: {(1.0 - (double)limitedResult.MemoryUsage / bfsResult.MemoryUsage) * 100:F1}%");
|
||||
Console.WriteLine($"Time increase: {((double)sw2.ElapsedMilliseconds / sw1.ElapsedMilliseconds - 1) * 100:F1}%");
|
||||
Console.WriteLine("\nThis demonstrates Williams' theoretical result:");
|
||||
Console.WriteLine("We can simulate time-bounded algorithms with ~√(t) space!");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user