thank you PA 5. Fifteen Puzzle Topics Covered 1. Graphs 2. Graph Traversals and Search Algorithms (DFS, BFS; IDS, etc) 3. Numpy ndarrays. Permutations, Transpositions, and Linear Algebra 4. Optimiation and Game Al 5. Event-Driven Programining Instructions Fifteen Puzzle Objectives practicing with classes, modules, gaph ADT, graph traversals, optimization techniques, game A, and event.diviven programining : supplementary Material 15 puzale-Wikipedia. B. Taxicabseonctrv- Whipedia. B. IkDocs Tutorial-Basic tvideets: Description In this assigment you will wite a program that emulates a game Fifteen, a sliding pura made of 15 tilos. The tiles are arranged in the 44 toweut made of 4 tow and 4 columns, Since there ate fo spaces coositions and ondy 15 tilos one space is engty. Your program should generate a GUi window with the game tayout that f controfitble by tha mouse batton clichs. The user can plav the earne for solve the curzaleBy default, the solution to the Fifteen puzzle is positioning of all tiles in order from left to right and tog to the bottom as shown in the picture above. Optionally, the user miy change the default final solution to any possible arrangements, for exarnple, the arrangement in the reverse order from 15 to 1. It is worth to mention that there ate 16! possible permutations of 15 tiles and an empty space; however; only a half of them is solvable given the constrains of the tile movements. This property is known as an invariant of the puzzle that is unchanged after purzle transformations and is due to the parity of the nermutation E, and the parity of the Manhattan (taxicabl distance. BSo. a half of 16 . petmutations is unsolvable for given in itial conditions! Your progan should generate only correct (allowed) permutations that preserve the invariant, it can be achitved if only correct transiormations are applied to the tiles such as only an empty space can be exchanged with its neighbors. However, the problem arises if the user enters the final solution of the puzzle that cannot be teachable fthis property of the game is optional. You can find the purale invalant by calculating the parity of a permutations if the empty square is in the lower right corner as shown on the picture above, then the purzle is solvable if and only if the permutation is even. Ever nermutations have a sign +1. and odd pernutations have a sign - 1 that are calculated by the following formula: sin(1)2= where N(s) is a mamber of inversions in s. An imversion is a pair of elements that are out of their natural order, You can read about a permutation parity here Parity of a permutation - Wikiocta th. For example, the following permutatiors are even: 12345678910111213141516N=0 where 16 is an empty space 16151413121110987654321N=B However, the following permutations are odd. 16123456789101112131415 15141312111098765432116N=7N=15 A. Fifteen Puzzle Solver (Extra Credit 10 points)A Fifteen Puzzle Solver (Extra Credit 10 points) The Fifteen puzzle can be solv.