COMP90038 Algorithms and Complexity – Best Writing Service

The University of MelbourneSchool of Computing and Information SystemsCOMP90038 and ComplexityAssignment 1, Semester 2 2019Released: Friday August 23 2019. Deadline: Sunday September 8 2019 23:59This assignment is marked out of 30 and is worth 15% of your grade for .ObjectivesTo improve your understanding of the time of and recurrence relations. To developproblem-solving and design skills. To improve written communication skills; in particular the ability topresent clearly, precisely and unambiguously.ProblemsLet’s play a game. Or, more precisely, design and analyse some that might be used in a simpletwo-dimensional (2D) game.Figure 1: A tiny example game scenario. Enemy (AI-controlled) players are shown in blue. The fixedlocation of the human player is marked by the red cross.Consider a game played on an two-dimensional grid, whose Cartesian coordinates range from(-M; M) : : : (M; M). Figure 1 depicts a game board for which M = 4.The game contains a fixed number N of enemy players, who are AI-controlled. Each player (includingthe human player and each enemy AI) is located at some arbitrary but fixed position (x; y) on the board,i.e. for which -M ≤ x ≤ M and -M ≤ y ≤ M.The human player can perform certain attacks, which damage all enemy players within a certainrange of the human player. To avoid the need to calculate with expensive multiplication and square rootoperations, we will approximate the range by a square situated about the human player.1Specifically, given some fixed bound b, for which 0 ≤ b ≤ M, if the human player is located at position(px; py) then all enemy players that lie within or on the borders of the box whose bottom-left corner is(px – b; py – b) and whose top-right corner is (px + b; py + b) are affected by the attack. Figure 1 depictsan example box for the bound b = 1:5.1. [1 mark] Implement an Θ(1) function to determine whether an enemy at position (x; y) is affectedby the player’s attack, given the player’s location (px; py):function IsAffected((px; py); (x; y); b). . .2. [2 marks] Suppose (for now) that the positions of the enemy players are stored in an unsorted arrayA[0] : : : A[N – 1].The following function uses the divide and conquer approach to mark all enemy players affected bya player attack. Marking is implemented by the Mark function whose details are not important.(Note: the division below is integer division, i.e. it rounds down to the nearest integer.)function MarkAffected((px; py); A; b)MarkAffectedDC((px; py); A; 0; N – 1; b)
function MarkAffectedDC((px; py); A; lo; hi; b)if lo = hi then
. assume lo ≤ hi
Australian Expert Writers
if IsAffected((px; py); A[lo]; b) thenMark(A[lo])elsemid lo + (hi – lo)=2MarkAffectedDC((px; py); A; lo; mid; b)MarkAffectedDC((px; py); A; mid + 1; hi; b)Explain the purpose of the outermost if/else” test. In particular, suppose we removed the lineif lo = hi” and the else” line. In no more than a paragraph explain how this would affect thealgorithm.3. [2 marks] Consider the following recurrence relations. Which one best describes the worst-basecomplexity of the MarkAffectedDC function, whose input size is n = hi -lo +1 and whose basicoperations are calling IsAffected and Mark? Justify your answer in no more than a paragraphof text.T (1) = 1T (n) = 2T (n=2)T (1) = 2T (n) = 2T (n=2) + 2T (1) = 0T (n) = 2T (n=2)T (1) = 2T (n) = 2T (n=2)4. [2 marks] Use telescoping (aka back substitution) to derive a closed form for your chosen recurrencerelation and thereby prove that the worst case complexity of the MarkAffectedDC algorithm isin Θ(n).5. [2 marks] Can we do better than this? Recall that the human player is at some fixed location (px; py).Your task is to work out how you would sort the array A so that those enemy AIs that need to bemarked can be identified in log(N) time.Specifically, complete the following comparison function that would be used while sorting the array A. Here, (x1; y1) and (x2; y2) are two points from the array A. The function should returntrue if it considers the first point to be less than or equal to the second, and should return falseotherwise. Your function can use the player’s coordinate (px; py) as global variables, i.e. you areallowed to refer to px and py in your function.2function LessOrEqualTo((x1; y1); (x2; y2)). . .6. [3 marks] Now, supposing the array has been sorted using your comparison function, implementan algorithm whose worst case complexity is in Θ(log(N)) that determines which array elementsshould be marked. Your function should take the bound b as an argument, and may also take theplayer’s coorinates (px; py).7. [2 marks] How many elements will need to be marked in the worst case and what, therefore, wouldbe the worst-case complexity of an algorithm that, given an array A sorted according to yourcomparison function, implemented the behaviour of MarkAffected above? Express your answerin Big-Theta notation.8. [2 marks] The worst case is quite pessimistic. On average, we might expect that enemy AIs areuniformly distributed throughout the game board.Let d be the expected number of enemy AIs contained in or on the borders of a box of bound b (i.e.whose width and height are each 2b) on the board. For simplicity, we limit our attention to boxesthat are contained entirely within the game baord.Consider an algorithm that, given an array A sorted according to your comparison function, implemented the behaviour of MarkAffected above by first using your Θ(log(N)) function to determinethe elements that need to be marked (of which we expect there to be d), and then marking those delements. We might characterise its expected complexity as:log(N) + dDerive a formula for d in terms of b, M and N.9. [2 marks] As a point of comparison, what is the expected complexity of the divide-and-conqueralgorithm above in this average case, expressed in Big-Theta notation? Justify your answer in nomore than a paragraph of text.10. [2 marks] Now compare the best case complexity of the divide-and-conquer algorithm and the onethat uses a pre-sorted array A described above. Express the best-case complexity of each in BigTheta notation as a function of N. Justify both in no more than a paragraph of text.11. [4 marks] Suppose now that the enemy AIs can send each other messages. However, two AIs,whose positions are (x1; y1) and (x2; y2) respectively, can directly communicate only if the line(x1; y1) | (x2; y2) that connects them does not pass through the rectangle (including its borders)surrounding the human player whose bottom left corner is (px-b; py -b) and whose top-right corneris (px + b; py + b), where (px; py) is the human player’s position.Implement a function that determines whether two enemy AIs can directly communicate. Includea brief description (no more than a single paragraph) of how your function works, i.e. the rationalebehind its design.function CanDirectlyCommunicate((x1; y1); (x2; y2); (px; py); b). . .12. [6 marks] Imagine that your CanDirectlyCommunicate function has been used to construct agraph whose nodes are the enemy AIs, such that there exists an edge between node n1 and n2 if andonly if those two AIs can directly communicate. This graph is stored as an adjacency matrix M.3Here the nodes ni are simply the indices of enemy AIs in the array A, so each of them is simply aninteger in the range 0 ≤ ni ≤ N -1. Therefore the adjacency matrix M is simply a two-dimensionalarray, M[0][0] : : : M[N – 1][N – 1].Implement an O(N2) algorithm that, given two enemy AIs n1 and n2 determines whether there exists a path by which they might communicate via other enemy AIs. If a path exists, your algorithmshould return the shortest path by which communication is possible. Otherwise, your algorithmshould return the empty path. Your algorithm also takes as its input the adjacency matrix representation of the graph described above.You should represent a path as a linked list of enemy AI indices ni. The empty path is thereforethe empty linked list without any nodes.Submission and Evaluation• You must submit a PDF document via the LMS. Note: handwritten, scanned images, and/or Microsoft Word submissions are not acceptable | if you use Word, create a PDF version for submission.• Marks are primarily allocated for correctness, but elegance of algorithms and how clearly you communicate your thinking will also be taken into account. Where indicated, the complexity of algorithms also matters.• We expect your work to be neat { parts of your submission that are difficult to read or decipher willbe deemed incorrect. Make sure that you have enough time towards the end of the assignment topresent your solutions carefully. Time you put in early will usually turn out to be more productivethan a last-minute effort.• You are reminded that your submission for this assignment is to be your own individual work.For many students, discussions with friends will form a natural part of the undertaking of theassignment work. However, it is still an individual task. You should not share your answers (evendraft solutions) with other students. Do not post solutions (or even partial solutions) on socialmedia or the discussion board. It is University policy that cheating by students in any form is notpermitted, and that work submitted for assessment purposes must be the independent work of thestudent concerned.Please see you have any questions, you are welcome to post them on the LMS discussion board so long asyou do not reveal details about your own solutions. You can also email the Head Tutor, Lianglu Pan( or the Lecturer, Toby Murray ( In yourmessage, make sure you include COMP90038 in the subject line. In the body of your message, include aprecise description of the problem.Late Submission and ExtensionLate submission will be possible, but a late submission penalty will apply: a flagfall of 2 marks, and then1 mark per 12 hours late.Extensions will only be awarded in extreme/emergency cases, assuming appropriate documentation isprovided simply submitting a medical certificate on the due date will not result in an extension.4

Assignment status: Already Solved By Our Experts

(USA, AUS, UK & CA  PhD. Writers)