Question

In: Computer Science

Provide reasoning Problem 2: The mouse and the cheese A mouse starts at the bottom left...

Provide reasoning

Problem 2: The mouse and the cheese A mouse starts at the bottom left corner of a grid as shown below, and takes a path on the grid of exactly 7 moves, each of which is either UP or to the RIGHT.

Consider the set A of all paths that will bring the mouse to a cheese. Call these paths the good paths. We are interested in finding |A|, i.e. the number of good paths.

(a) Describe a set B of binary words with a special property such that there is a bijection between A and B. Hint: Think of UP as 0 and RIGHT as 1. Your answer should describe the set B very clearly.

(b) Find |A| by finding |B|. Hint: Consider the addition rule by breaking B into two categories of words based on the number of 1s in them.

Solutions

Expert Solution

A Maze is given as N*N binary matrix of blocks where source block is the upper left most block i.e., maze[0][0] and destination block is lower rightmost block i.e., maze[N-1][N-1]. A rat starts from source and has to reach the destination. The rat can move only in two directions: forward and down.

In the maze matrix, 0 means the block is a dead end and 1 means the block can be used in the path from source to destination. Note that this is a simple version of the typical Maze problem. For example, a more complex version can be that the rat can move in 4 directions and a more complex version can be with a limited number of moves.

Following is an example maze.

{1, 0, 0, 0}

{1, 1, 0, 0}

{0, 1, 0, 0}

{0, 1, 1, 1}

All enteries in solution path are marked as 1.

Backtracking Algorithm: Backtracking is an algorithmic-technique for solving problems recursively by trying to build a solution incrementally. Solving one piece at a time, and removing those solutions that fail to satisfy the constraints of the problem at any point of time (by time, here, is referred to the time elapsed till reaching any level of the search tree) is the process of backtracking.

Approach: Form a recursive function, which will follow a path and check if the path reaches the destination or not. If the path does not reach the destination then backtrack and try other paths.

Algorithm:

Create a solution matrix, initially filled with 0’s.
Create a recursive funtion, which takes initial matrix, output matrix and position of rat (i, j).
if the position is out of the matrix or the position is not valid then return.
Mark the position output[i][j] as 1 and check if the current position is destination or not. If destination is reached print the output matrix and return.
Recursively call for position (i+1, j) and (i, j+1).
Unmark position (i, j), i.e output[i][j] = 0.

/* C/C++ program to solve Rat in  

a Maze problem using backtracking */
#include <stdio.h>

  
// Maze size
#define N 4

  

bool solveMazeUtil(

int maze[N][N], int x,

int y, int sol[N][N]);

  
/* A utility function to print  
solution matrix sol[N][N] */

void printSolution(int sol[N][N])
{

for (int i = 0; i < N; i++) {

for (int j = 0; j < N; j++)

printf(" %d ", sol[i][j]);

printf("\n");

}
}

  
/* A utility function to check if x,  
y is valid index for N*N maze */

bool isSafe(int maze[N][N], int x, int y)
{

// if (x, y outside maze) return false

if (

x >= 0 && x < N && y >= 0

&& y < N && maze[x][y] == 1)

return true;

  

return false;
}

  
/* This function solves the Maze problem  
using Backtracking. It mainly uses  
solveMazeUtil() to solve the problem.  
It returns false if no path is possible,  
otherwise return true and prints the path  
in the form of 1s. Please note that there  
may be more than one solutions, this  
function prints one of the feasible  
solutions.*/

bool solveMaze(int maze[N][N])
{

int sol[N][N] = { { 0, 0, 0, 0 },

{ 0, 0, 0, 0 },

{ 0, 0, 0, 0 },

{ 0, 0, 0, 0 } };

  

if (solveMazeUtil(

maze, 0, 0, sol)

== false) {

printf("Solution doesn't exist");

return false;

}

  

printSolution(sol);

return true;
}

  
/* A recursive utility function  
to solve Maze problem */

bool solveMazeUtil(

int maze[N][N], int x,

int y, int sol[N][N])
{

// if (x, y is goal) return true

if (

x == N - 1 && y == N - 1

&& maze[x][y] == 1) {

sol[x][y] = 1;

return true;

}

  

// Check if maze[x][y] is valid

if (isSafe(maze, x, y) == true) {

// mark x, y as part of solution path

sol[x][y] = 1;

  

/* Move forward in x direction */

if (solveMazeUtil(

maze, x + 1, y, sol)

== true)

return true;

  

/* If moving in x direction

doesn't give solution then  

Move down in y direction */

if (solveMazeUtil(

maze, x, y + 1, sol)

== true)

return true;

  

/* If none of the above movements  

work then BACKTRACK: unmark  

x, y as part of solution path */

sol[x][y] = 0;

return false;

}

  

return false;
}

  
// driver program to test above function

int main()
{

int maze[N][N] = { { 1, 0, 0, 0 },

{ 1, 1, 0, 1 },

{ 0, 1, 0, 0 },

{ 1, 1, 1, 1 } };

  

solveMaze(maze);

return 0;
}

Output:
The 1 values show the path for rat
1 0 0 0
1 1 0 0
0 1 0 0
0 1 1 1
Complexity Analysis:

Time Complexity: O(2^(n^2)).
The recursion can run upperbound 2^(n^2) times.
Space Complexity: O(n^2).
Output matrix is required so an extra space of size n*n is needed.


Related Solutions

When placed in a maze, a mouse has a 35% chance of finding the cheese at...
When placed in a maze, a mouse has a 35% chance of finding the cheese at the end of the maze. What is the probability of the mouse finding the cheese a) in three consecutive ways? b) in three of four attempts?
Answer all the list questions below. Provide reasoning for the identified correct answer. Also, provide reasoning...
Answer all the list questions below. Provide reasoning for the identified correct answer. Also, provide reasoning for the invalid answers. I will thumb you down if you do not follow the above instructions completely -------------------------------------------------------------------------------------------------------------------- 31) Which of the following genes does not encode a transcription factor? a)c- myc b) RAR alpha c) ras d) p43 --------------------------------------------------------- 32) A relatively small circular DNA molecule that encodes oncogenes and is present in many types of cancer is called a _____. a)...
Answer all the list questions below. Provide reasoning for the identified correct answer. Also, provide reasoning...
Answer all the list questions below. Provide reasoning for the identified correct answer. Also, provide reasoning for the invalid answers. I will thumb you down if you do not follow the above instructions completely -------------------------------------------------------------------------------------------------------------------- 25) Which of the following is false regarding mis-match repair? a) It is initiated by specific proteins that function in sequential steps, not as a singular large complex b) It is the same mechanism as recombination repair c) It involves DNA ligase d) It involves...
25. Top-­‐down processing is to ______, as bottom-­‐up processing is to ______. a. inductive reasoning; deductive...
25. Top-­‐down processing is to ______, as bottom-­‐up processing is to ______. a. inductive reasoning; deductive reasoning b. pattern recognition; expectations and motivations c. perceptual set; perceptual category d. perceptual category; perceptual set 26. List steps for sensation, in order as they occur: a. accessory structure modifies stimulus, coding from sensory nerve to CNS, transduction of stimulus energy to neural information, thalamus relays response, cortex receives input b. accessory structure modifies stimulus, thalamus relays response, coding from sensory nerve to...
The mole number is 4. The Cycle starts at the upper left corner A at a...
The mole number is 4. The Cycle starts at the upper left corner A at a temperature Of 200 K and expands at a constant pressure of 5x10 4 N/m^2 to state B at the upper right with a temperature of 400K; then decreases at constant volume to a pressure of 2.5x10 4 N/m^2 and temperature 200 K at state C on the lower right. and from there compressed a constant pressure to point D in the lower left at...
3. A mouse has approximately 1,400 olfactory genes. Provide an evolutionary explanation. [2] 4. A nose...
3. A mouse has approximately 1,400 olfactory genes. Provide an evolutionary explanation. [2] 4. A nose also functions as a humidifier. Explain the relationship between noses and people who live on the shores of the Mediterranean sea, compared to those further north, or further south. [2]
A random walker starts out 10 paces to the left of a fence. Normally p=q=1/2 except...
A random walker starts out 10 paces to the left of a fence. Normally p=q=1/2 except at the fence, where q=1. What is the probability that the walker will be back at his starting point after N paces?
What will be the mass of anhydrous Alum left over if one starts with 100.00g of...
What will be the mass of anhydrous Alum left over if one starts with 100.00g of Hydrated Alum?
Quantitative Reasoning Problem 2 ACC 122 Assignment is to be completed as a Word Document, PDF,...
Quantitative Reasoning Problem 2 ACC 122 Assignment is to be completed as a Word Document, PDF, or on notebook paper and submitted through Moodle The table below contains letters a, b, c, d. 2018 2017 Average common stockholder equity $1,800,000 $1,900,000 Dividends paid to common shareholders 90,000 70,000 Dividends paid to preferred shareholders 20,000 20,000 Net Income 290,000 248,000 Market Price of common stock $20 $25 Weighted average number of shares common stock outstanding 150,000 180,000 Earnings per share (a)...
Problem 10.23 An alpha particle (a helium nucleus, containing 2 protons and 2 neutrons) starts out...
Problem 10.23 An alpha particle (a helium nucleus, containing 2 protons and 2 neutrons) starts out with kinetic energy of 10.0 MeV (10.0 × 106 eV), and heads in the +x direction straight toward a gold nucleus (containing 79 protons and 118 neutrons). The particles are initially far apart, and the gold nucleus is initially at rest. Answer the following questions about the collision. What is the initial momentum of the alpha particle? (You may assume its speed is small...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT