0% found this document useful (0 votes)
6 views4 pages

PROJECT2 B

The document outlines a project focused on solving the graph orientation problem, which involves assigning directions to edges in an undirected graph to minimize the maximum out-degree. It includes specific tasks such as designing an algorithm, analyzing its running time, proving its correctness, implementing the algorithm in a program, and demonstrating the results. Submission guidelines emphasize the importance of originality, presentation quality, and the potential for evaluation through demonstration of the program's functionality.

Uploaded by

jsanthoshithota
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views4 pages

PROJECT2 B

The document outlines a project focused on solving the graph orientation problem, which involves assigning directions to edges in an undirected graph to minimize the maximum out-degree. It includes specific tasks such as designing an algorithm, analyzing its running time, proving its correctness, implementing the algorithm in a program, and demonstrating the results. Submission guidelines emphasize the importance of originality, presentation quality, and the potential for evaluation through demonstration of the program's functionality.

Uploaded by

jsanthoshithota
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Project 2b

An Algorithm Design Challenge

The algorithmic problem: Given an undirected graph G, assign a direc-


tion to each edge, such that the maximum out-degree in the resulting directed
graph is minimized.

Notes:

• The out-degree of a node is the number of directed edges that point out
of the node.

• It is assumed that G does not contain self-loops and parallel edges.


Such a graph is usually referred to as a simple graph. The action of
assigning directions to the edges of an undirected graph is often called
orienting the undirected graph. Thus, our task is to find an orientation
of a simple undirected graph, such that the maximum out-degree is
minimized.

• The representations for the input and output graphs (such as adjacency
matrix, or adjacency list) are your choice.

• Motivation. The motivation for this problem is the following opti-


mization task (this is only background information, it is not needed for
the solution):
Given m tasks T1 , . . . , Tm and n machines M1 , . . . , Mn , we want to
assign each task to a machine, under the following constraints:

– For each task there are two given machines on which it can run, it
must be assigned to precisely one of them. A machine, however,
may run an unlimited number of tasks.
– The execution time of every task is 1 time unit. If a machine is
assigned k tasks, it completes its work in k time units, starting
from 0.
– The whole task system is completed, when every machine com-
pleted its work. This is the completion time of the system.

1
– The goal is to assign the tasks to the machines, under the above
constraints, such that the completion time of the whole task sys-
tem is minimized.

This optimization problem can be mapped into our graph orientation


problem, as follows.

– Represent each machine Mi by a node vi .


– Represent each task Tk by an undirected edge connecting those
two nodes that correspond to the two machines on which the task
can run.
– The solution can be represented by an orientation of the arising
undirected graph. Let vi , vj be the end-nodes of the edge corre-
sponding to task Tk . If we decide to run Tk on vi , then orient the
edge from vi to vj , otherwise orient it in the opposite direction.
– According to the above, the number of tasks that are assigned
to run on machine Mi will be exactly the out-degree of node vi .
Since each task takes 1 time unit to execute, this out-degree will
also be the completion time of machine Mi . The largest of these
times is the completion time of the system, it corresponds to the
maximum out-degree, which we want to minimize.

Specific tasks for the project:

1. Design an algorithm to solve the graph orientation problem. Present


your algorithm both with a verbal explanation, and with pseudo-code.

2. Analyze the running time of the algorithm, in terms of the O(.) notation
(order of magnitude). Your algorithm must run in polynomial time, in
terms of the graph parameters. Exhaustive search is not acceptable.

3. Prove the correctness of the algorithm, i.e., convince the reader that it
indeed finds an optimal solution.

4. Write a program that implements your algorithm. The programming


language and operating system are of your choice.

2
5. Select some test examples for demonstration, and run your program on
them. Show a few results graphically. There is no rigid requirement on
the number, size, and structure of the test examples, but they should
demonstrate your solution in a way that looks convincing to a reader
(who can be viewed as a potential “customer”).

Note: If something is not specified in this project description, that automat-


ically means it is left to your choice.

Submission guidelines
Describe everything, including the algorithm, program, sources, results and
figures neatly and clearly in a study. Include everything in a single document
that can be read as a report. It should have a professional appearance,
scanned handwriting is not acceptable! The preferred file type is pdf. Do
not submit executable code, but include the source code as an Appendix in
the document. The project report will be read as a document and not run
as a program (but there are two exceptions, see them under Evaluation).
Submit the document through eLearning. Do not send it via e-mail!
Notes:

• The work should be fully individual and original. Any form of cheat-
ing is a serious violation of University policies and can lead to serious
consequences.
• It may be helpful to think about the whole project presentation that
your task is not only to solve a technical problem, but you also have
to “sell” the results. Try to look at your work from the viewpoint of a
potential customer, to whom you want to sell such a software product.
How convincing would your presentation look for a customer?

Evaluation
The evaluation will focus on how well each of the specific tasks have been
carried out. Even though the submission will not be run, only read as a
document, there are two exceptions. You will be asked to demonstrate on
a computer how your program actually runs, if any of the following cases
occur:

3
1. You do not agree with the grade and want to improve it. In this case
the demonstration should show that your work is actually better than
the received grade.

2. There is suspicion that the work is not original or not individually done
or the results were not produced by your own correctly running pro-
gram. In this case a demonstration is required to clarify the situation
and to receive any score.

You might also like