ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

COMP523 Second CA Assignment

2019-12-01 18:56:55  阅读:285  来源: 互联网

标签:algorithm Assignment better polynomial Second time COMP523 problem best



COMP523 - 2019 - Second CA Assignment
Advanced Algorithmic Techniques
Assessment Information
Assignment Number 2 (of 2)
Weighting 12.5%
Assignment Circulated 15 Nov 2019
Deadline 1 Dec 2019, 16:00
Submission Mode Please submit your solutions electronically (PDF or DOC format) at the
electronic submission system of the Computer Science Department
which you can find at the following url.
https://sam.csc.liv.ac.uk/COMP/Submissions.pl?strModule=COMP523.
Learning outcome assessed 3. Identify which of the studied design principles are used in a given algorithm
taking account of the similarities and differences between the principles.
4. Apply the studied design principles to produce efficient algorithmic solutions
to a given problem taking account of the strengths and weaknesses
of the applicable principles.
Purpose of assessment Design and analysis of algorithms for a given problem.
The aims are: to identify the complexity of a problem and design
good algorithms based on the different design principles covered in class.
Marking criteria Based on the marking descriptors of the University’s Code of Practice on Assessment
Submission necessary in order No
to satisfy Module requirements?
Late Submission Penalty Standard UoL Policy.
Plagiarism and Collusion Please be aware of the University guidelines on plagiarism and collusion.
Task specification
Provide an answer to the following problem. You may consider any of the material that was presented in the lectures
as known.
Problem 1
Necessary definitions
Consider the following measure of comparison between two algorithms A and B, based on their running time and
approximation ratio:
• Better running time: Algorithm A has a better running time than algorithm B if A is polynomial time and B
is pseudo-polynomial time or exponential time, or if A is pseudo-polynomial time and B is exponential time.
• Better performance: Algorithm A has a better performance than algorithm B if A has a smaller approximation
ratio than B.
Remark: The comparisons above are based on the best possible analysis for the algorithms. For instance, a polynomial
time algorithm is better than a pseudopolynomial time algorithm, only if the latter can not be proven to run
in polynomial time. As a concrete example (from the lectures), you can either solve the max flow problem using
代写COMP523作业、代做Algorithmic留学生作业
the Edmonds-Karp algorithm, or using a polynomial-time algorithm for linear programming. If you use the FordFulkerson
analysis for Edmonds-Karp (which will give you a pseudopolynomial running time), it would be incorrect
to claim that the LP-based algorithm is better than Edmonds-Karp, because the latter actually runs in polynomial time
with a better analysis (and they both solve the problem exactly). Similarly, if you prove an approximation ratio α for a
polynomial-time algorithm A and an approximation ratio β for a polynomial-time algorithm B, you can safely claim
that A is better than B only if α < β and you can not getter a better approximation ratio β
0
for B with a better analysis.
An algorithm A that has better running time and better performance than an algorithm B is better than B. An algorithm
A is best, if there is no other algorithm that is better than it (assuming P 6= NP).
From the definitions, it follows a polynomial-time algorithm that solves a problem P exactly is obviously best, but if
the problem P is NP-hard, then a polynomial-time algorithm with the best possible approximation ratio α > 1 is best,
or a pseudopolynomial algorithm that solves it exactly (if it exists) is best. For example, for the 0/1-Knapsack problem,
the pseudopolynomial algorithm based on dynamic programming is best, the FPTAS approximation algorithm is best,
but the 2-approximation Greedy algorithm is not best, because there is an approximation algorithm which runs in
polynomial time and achieves a better approximation ratio (the FPTAS).
The problem
Consider the following problem. A university lecturer aims to schedule a series of 1-hour Q&A sessions with n students
(these are sessions for groups of students, not 1-on-1 meetings) and has set up a doodle poll where there are m
available time slots. Every student has indicated which slots they could attend and it turns out that any student appears
in at least 1 and at most k time slots in the doodle poll. The lecturer would like to minimise the number of sessions
that they will have to do, making sure that they do at least one session for every student (i.e., every student will have a
chance to attend some session).
Come up with three best algorithms for the problem.
Explain the limitations of your proposed solutions, as well as the limitations of the problem. Explain, whenever
possible, why your proposed algorithms are best. If you are not sure whether they are best, what kind of improvements
could you be looking for?


如有需要,请加QQ:99515681或 微信:codehelp

标签:algorithm,Assignment,better,polynomial,Second,time,COMP523,problem,best
来源: https://www.cnblogs.com/skyjavaw/p/11965994.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有