EE 607: Advanced Network AlgorithmsSpring 2009
Last updated: Jan 9, 2009
❑ Instructor: Galen H. Sasaki. Email: sasaki@spectra.eng.hawaii.edu. Tel: 348 9432 (cell). Office: Holmes 436. Office Hours: MW 1:45-2:45. ❑ Days and Times: MW 12:30-1:45pm (May change if we can find a room and days/times) ❑ Room: Holmes 389

❑ Brief Course Description: The course will cover algorithms that are used in network research and implementation. These include graph algorithms, transmission scheduling, traffic management, and control algorithms for certain switch/router architectures. There will be an emphasis on TCP/IP as a case study. See the list of topics below. ❑ Prerequisite: EE 367 (data structures) and knowledge of C programming, or consent of instructor. Knowledge of C programming is required of everyone. Knowledge of undergraduate probability (e.g., EE 342) will be helpful, but not necessary. ❑ Textbooks:

• Stevens, TCP/IP Illustrated, Vol. 1, Addison-Wesley
• Cormen, Leiserson, and Rivest, Introduction to Algorithms, MacGraw Hill. ❑ Grading: Grading will be based on a midterm exam [20%], a final exam [20%], homework [20%], midterm projects [20%], and final project [20%]. ❑ List of topics (there may be some minor changes):

• Overview of the Internet Architecture
▪ Overview of computer commuication, computer networks, and TCP/IP ▪ Packet switching, store-and-forwarding, connection-oriented and connectionless routing, routing tables, and source routing. • Graph Algorithms

▪ Algorithms and their performance.
▪ Graphs, breadth-first-search, spanning trees, minimum weighted spanning trees. ▪ Shortest path problem, Dijkstra and Bellman-Ford algorithms, and applications to networks. ▪ Max-flow problem, Ford-Fulkerson labeling algorithm, max-flow min-cut theorem, applications, bipartite matching, disjoint paths. ▪ NP-Completeness, approximation algorithms, greedy algorithms. ▪...

...INFORMATION TECHNOLOGY ASSIGNMENT
ON ALGORITHM
Done by
Densil Hamilton
INTRODUCTION
This Assignment was done to show the methods of algorithm. It outlines the meaning of algorithm and steps to be carried out to complete a give problem. Examples were also shown for the methods of representing algorithm.
What is an Algorithm?
An algorithm consists of a set of explicit and unambiguous finite steps which, when carried out for a given set of initial conditions, produce the corresponding output and terminate in finite time. (How to Solve it by Computer, RG Dromey, Prentice Hall UK, 1982)
This is done by a series of steps:
1. Input: there are zero or more quantities which are externally supplied;
2. Output: at least one quantity is produced;
3. Definiteness: each instruction must be clear and unambiguous;
4. Finiteness: if we trace out the instructions of an algorithm, then for all cases the algorithm will terminate after a finite number of steps;
5. Effectiveness: every instruction must be sufficiently basic that a person using only pencil and paper can in principle carry it out. It is not enough that each operation is definite, but it must also be feasible.
WAYS OF REPRESENTING ALGORITHMS
Two ways of represent an algorithm are:
Flowcharts
Pseudo Code
FLOWCHARTS
This is a...

...Algorithm
The term algorithm is often used to refer to the logic of a program It is a step-by step description of how to arrive at the solution of the given problem. It may be formally defined as a sequence of instructions, designed in a manner that, if the instructions are executed in the specified sequence, the desired results will be obtained. In order to qualify as an algorithm, a sequence of instructions must possess the following characteristics:
Sample Algorithms
50 Students in a class appeared in their final examination. Their mark sheets have been given to you. The division column of the mark sheet contain the division (FIRST, SECOND, THIRD or FAIL) obtained by the student. Write an algorithm to calculate and print the total number of students who passed in FIRST division.
Algorithm
Step 1: Initialize Total, First Division, Total _Mark sheets _Checked to zero.
Step 2: Take the mark sheet of the next student.
Step 3: Check the division column of the mark sheet to see if it is FIRST. If no, go to Step 5.
Step 4: Add 1 to Total First Division.
Step 5: Add I to Total_Marksheets_Checked
Step 6: Is Total_Marksheets_Checked = 50? ifno, go to Step 2.
Step 7: Print TotaI First_Division.
Step 8: Stop.
There are 100 employees in an organization. The organization wants to distribute annual bonus to the employees based on their performance. The performance of the employees...

...Chapter 7 Backtracking Algorithms
Truth is not discovered by proofs but by exploration. It is always experimental. — Simone Weil, The New York Notebook, 1942
Objectives • • • • • •
To appreciate how backtracking can be used as a solution strategy. To recognize the problem domains for which backtracking strategies are appropriate. To understand how recursion applies to backtracking problems. To be able to implement recursive solutions to problems involving backtracking. To comprehend the minimax strategy as it applies to two-player games. To appreciate the importance of developing abstract solutions that can be applied to many different problem domains.
Backtracking Algorithms
– 238 –
For many real-world problems, the solution process consists of working your way through a sequence of decision points in which each choice leads you further along some path. If you make the correct set of choices, you end up at the solution. On the other hand, if you reach a dead end or otherwise discover that you have made an incorrect choice somewhere along the way, you have to backtrack to a previous decision point and try a different path. Algorithms that use this approach are called backtracking algorithms. If you think about a backtracking algorithm as the process of repeatedly exploring paths until you encounter the solution, the process appears to have an iterative character. As it happens, however,...

...put the program into production, understand the problem
d. code the program, translate it into machine language
11. The two most commonly used tools for planning a program’s logic are _____.
a. flowcharts and algorithms
b. ASCII and EBCDIC
c. Java and Visual Basic
d. word processors and spreadsheets
12. The most important task a programmer must do before planning the logic to a program is _____.
a. decide which programming language to use
b. code the problem
c. train the users of the program
d. understand the problem
13. Writing a program in a language such as C++ or Java is known as _____ the program.
a. translating
b. coding
c. interpreting
d. compiling
14. A compiler would find all of the following programming errors except _____.
a. the misspelled word “prrint” in a language that includes the word “print”
b. the use of an “X” for multiplication in a language that requires an asterisk
c. newBalanceDue calculated by adding customerPayment to oldBalanceDue instead of subtracting it
d. an arithmetic statement written as regularSales + discountedSales = totalSales
15. The parallelogram is the flowchart symbol representing _____.
a. input
b. output
c. both a and b
d. none of the above
16-20. Create a flowchart using MS Word from the algorithm below:
Read Temp If Temp < 0 Then Print Temp, “Below Freezing” Else If Temp > 0 Then Print Temp, “Above Freezing” Else Print Temp, “Freezing” End If End If...

...Scheduling and Spanning Trees: Throughput-Delay Trade-off for Fast Data Collection in Sensor Networks
¨ Amitabha Ghosh, Ozlem Durmaz Incel, V. S. Anil Kumar, and Bhaskar Krishnamachari
Two primary factors that affect the data collection rate (throughput) and timeliness (delay) are: (i) efﬁciency of the link scheduling protocol, and (ii) structure of the routing tree in terms of its node degrees and radius. In this paper, we utilize multiple frequency channels and design an efﬁcient link scheduling protocol that gives a constant factor approximation on the optimal throughput in delivering aggregated data from all the nodes to the sink. To minimize the maximum delay subject to a given throughput bound, we also design an (α, β)bicriteria approximation algorithm to construct a BoundedDegree Minimum-Radius Spanning Tree, with the radius of the tree at most β times the minimum possible radius for a given degree bound ∆∗ , and the degree of any node at most ∆∗ + α, where α and β are positive constants. Lastly, we evaluate the efﬁciency of our algorithms on different types of spanning trees, and show that multi-channel scheduling, combined with optimal routing topologies, can achieve the best of both worlds in terms of maximizing the aggregated data collection rate and minimizing the maximum packet delay. Index Terms—Convergecast, TDMA scheduling, multiple channels, routing trees, approximation algorithms.
I. I...

... Syed Haseeb Hashmi
Registration # FA11-BCS-075
Course Title Design and Analysis of Algorithm
Assignment # 1
Submitted To Sir Tanveer Ahmed Siddiqui
Due Date 19-03-2013
For Odd Role Number Group
Q1. How does a flowchart help a programmer in a program development?
Ans. Flowcharts provide the visual representation of a concept and make it clear. A flow chart serves as a blueprint of the program. Flowcharts helps a programmer organize his/her thoughts in a logical order and their presentation. Program development without graphics may be less effective. In big projects it gets difficult to keep things together. Flowcharts provide flexibility, so that you can make changes and restructure the project as you move further and, according to requirement. Flowcharts act as a guide during the analysis and program development phase. Moreover they are also helpful in debugging process.
Q2. Draw a flowchart of the logical steps needed to produce a printed listing of all students over the age of 20 in a class. The input records contain the name and age of the students. Assume a sentinel value of 99 for the age field of the trailer record.
Sol.
Q3. The first 20 records in a data set are to be read and printed. Draw a flowchart for the algorithm to do this job. Make sure that the processing stops after the twentieth record.
Sol.
Q4. For the...

...IMPLEMENTATION OF IMAGE PROCESSING ALGORITHMS ON FPGA
ABSTRACT
This presents the use of a high language programming technique to implement image processing algorithms. FPGA is very instrumental in real time image processing because of the properties it holds. For example, FPGA has a structure that has ability to use temporal and special parallelism. This property is only unique to this kind of gates. Hardware constraints of the machine are another factor to consider because it affects the parallelism. Besides hardware constrains, processing mode is also another factor that affects parallelism. Computer engineers have sometimes been forced to change the settings of the algorithm sine the constraints were so illusive and in compatible. This paper is geared towards dealing with some sets of constraints for different types of image processing.
INTRODUCTION
Computer scientists have always been challenged in their bid to implement real time image processing on serial processors. These difficulties have always been brought up by image properties such as large data sets, and complex operations that need to be performed on the image. In real time processing, 25 frames are witnessed every second. This alone contributes to redundancy and also adds to the slowing down of processing brought about by overheads of retrieval and storing of picture ingredients. In order to counteract the limitations that come with real time image...