代做CS 231, Spring 2024 ASSIGNMENT 4代写Python语言

2024-07-15 代做CS 231, Spring 2024 ASSIGNMENT 4代写Python语言

CS 231, Spring 2024

ASSIGNMENT 4

Due date:July 24,202416:00(Waterloo time)

Coverage: Through Module 10

This  assignment  consists  of  a   written  component  and  a  programming  component.Please read the instructions on the reference page for assignments carefully to ensure that you  submit each  component  correctly.

Please check the pinned FAQ in the discussion forum for corrections and clarifications.

Note:In  assignment  questions  that  specify  the  use  df  aparticular paradigm,you  are  expected to  come up with  a new  algorithm using that paradigm.It)is not  sufficient to  implement  a  class example  as  a  helper  function  and  declare  that the paradigm has been used.

Written component

For full marks,you are expegted to provide a brief justifcation  of any  answer you provide.

W1.[6 marks]In Assignment 2,we  considered  a  greedy  algorithm  for  finding  as  maximum  size cluster  in  a  graph.Here  we  will  consider  the  algorithm  as  an  approximation  algorithm.

(a)[1  mark]What  is  the  approximation  ratio  when  the  instance  is  a  complete  graph  on at  least  two  vertices?Briefly  justify  your  answer.

(b)[1 mark]What  is  the  approximation  ratio  when  the  instance  is  a  tree  on  at  least  two vertices?Briefly  justify  your  answer.

(c)[4  marks]Give  a  family  of  graphs   for   which   the  approximation  ratio  cannot  be bounded   above   by   a   constant.That   is,provide   a   function   f(n),where   f(n)is   not a  constant  function,such  that  the  ratio  between  the  approximate  and  the  optimal solution  is  at  least  f(n).You  do  not  need  to  provide  a  graph  for  each  value  of  n, but you should show how to form an infinite family ofgraphs of increasing size.As in W2  of Assignment  2,the  statement  should  hold  for  any  ordering  of  the  vertices,no matter how ties are broken.

W2.[6 marks]In this question,we will consider two possible backtracking algorithms for CLUS- TER PARAMETERIZED BY CLUSTER SIZE,defined as follows:

Input: A graph G and a positive integer k

Output: Yes  or  no,answering“Is  there  a  cluster  in  G  of  size k? Parameter: k

For each of the algorithms described below,answer the following two questions:

●  Is  the  worst-case  running  time  of  the  algorithm  in  f(k)·n⁰(1)?

●  Is  the  proposed  algorithm  guaranteed  to  produce  the  correct  answer?

(a)[3  marks]Form  a  search  tree  in  which  the  root  corresponds  to  the  empty  set.At each node,form a child for each node not already in the set that is a neighbour of all nodes  in  the  set  (vacuously  true  for  the  empty  set).Stop  after  k+1  levels,producing true if a node is formed and false otherwise.

(b)[3  marks]Order  the  vertices.Form.  a  search  tree  in  which  the  root  corresponds  to  the empty  set.At  each  node,for  the  next  vertex  in  order,create  one  set  that  contains the vertex (if it and the current contents of the set form a cluster)and one that does not  contain  the  vertex.Stop  after  k+1  levels,producng  true  if  a   node  is  formed and false otherwise.

W3.[9 marks]In this question,you will use hilkclimblng for the problem of REPRESENTATIVE SETS,as defined in Assignment 2.

(a)[3  marks]Describe  a  hill-climbing  apprdach,including  the  initial  solution  and  how  it is  updated  at  each  step.For  full  marks,be  sure  to  explain  why  your  approach  can be classified as hill-clambing

(b)[3  marks]Provide  an  input  on  which  your  approach  is  guaranteed  to  produce  the optimal solution.Yout input mast contain at least 4 sets,and each set must contain at least 2 values.Briefly justify your answer by explaining how your approach performs on the provided  input  ahd why  the  solution  is  optimal.

(c)[3 marks]Provide  an  input  on  which  your  approach  is not guaranteed  to provide the optimal  solution.Your  input  must  contain  at  least  4  sets,and  each  set  must  contain at  least  2  values.Briefly  justify  your  answer  by  discussing  both  the  output  of  the approach  and  the  optimal  solution.

W4.[3 marks]An algorithm for REPRESENTATIVE SETs forms a solution B as follows:consid- ering  each  set  in A  one by  one,randomly  choose whether  or not to put the  set  in  B.The probability  of adding  a  particular  set  is  1/2,so  the  probability  of  omitting  it  is  also  1/2. For  the  purpose  of  this  question,we'll  define“high  probability”(of  producing  the  correct  answer)to  be  any  probability  that  is  greater  than  3/4.

(a)[1  mark]Does  the  algorithm  fit  the  definition  of  a  Las  Vegas  algorithm?

(b)[1  mark]Does  the  algorithm  fit  the  definition  of  a  Monte  Carlo  algorithm?

(c)[1 mark]Is there  ever  a reason  that  one might  choose to use  a  randomized  algorithm for  a  problem  in  P?Briefly justify  your  answer.

Programming component

Please read the information on assignments and Python carefully to ensure that you are using  the  correct  version  of  Python  and  the  correct  style.For  full  marks,you  are  required not only to have a correct solution,but also to adhere to the requirements of the assignment question and the style guide,including aspects of the design recipe.

Although submitting tests is not required,it is highly recommended that you test your code. For each assignment question,create a testing file that imports your submission and tests the code.Do not submit your testing file.

For any of the programming questions in this assignment,you may import any of the  fol- lowing  files:check.py,graphs.py,and  equiv.py,as  well  as  built-in  modules  such  as  math  and copy.

Be sure to read the instructions on the Python requirements page to ensure that you have imported the files as required.

P1.[14 marks]Write a function cluster_backtrack that consumes a graph and produces a list of IDs of vertices that forms a cluster of maximum size.Your function should use backtracking.

Submit your work in a fle with the name clusterbacktrock.py.