PREV INDEX NEXT

Author: Stan Eisenstat
Subject: Re: [Cs223] adversary
Date: Sunday, 01 Mar 2020, 11:51:55


    > Message Posted By: Unknown
    >
    > what is the point of an adversary argument? is it essentially listing out
    > all possible combinations, minimizing the number of combinations deleted
    > each round (ie. making the algorithm take as many steps as possible), and
    > then calculating the number of steps required?

The point of an adversary argument is to establish a
lower bound on the complexity of a problem; that is,
a lower bound on the complexity of any algorithm that
solves it.

The form of adversary argument that we discussed in
class uses a set S of possible problem instances to
answer questions posed by the algorithm.  The lower
bound follows from an analysis of how many questions
are needed to reduce the size of S to a point where
the solution to the problem is known.
=====

    > why does an adversary argument imply that an algorithm is optimal?

If an algorithm can solve the problem by asking the
smallest possible number of questions, then no other
algorithm can be better.
=====

    > i also don't get the point of the three examples in lecture 9. under the
    > element uniqueness problem, there is equality testing, inequality testing
    > and anything goes. for inequality testing, we are told to sort the items
    > first. but then the procedure compares each possible pair. so what is the
    > algorithm and what is the procedure? i'm very confused about what the
    > actual algorithm is, what the adversary is, and how the adversary proves
    > that the algorithm is optimal.

The three examples are one problem (element uniqueness)
with three different models of computation (what kinds
of operations are permitted):  With equality testing,
an algiorithm can only ask if two photographs are
pictures of the same person.  With inequality testing,
an algorithm can ask whether one weight is lighter than,
of equal weight to, or heavier than another weight.  In
anything goes, the algorithm can use the integers in
any manner it chooses.

In each case we derived an algorithm, and in the first
two we showed that that algorithm achieved the lower
bound in that model of computation and thus was optimal.
=====

    > for anything goes, there was no complexity analysis or adversary provided.
    > what is the point of anything goes? also, what does anything goes mean?

The algorithm runs in time linear in the number of
items.  Since any algorithm must look every item in the
worst case, no algorithm can run more than a constant
times faster.

--Stan-
PREV INDEX NEXT