Small program on Algorithms , Data Structure & Algorithms

Assignment Help:
Objective

The goal of this project is to extend and implement an algorithm presented in the course and to apply notions introduced by the course to this program/algorithm. The assignment is relatively open-ended. The instructor will answer any question you may have. However, when in doubt, work toward the project goal stated above. This is an individual project. You may discuss it with other students, but the work you present must be your own only.

Deliverable

You will produce two items: (1) the code of the program specified below, and (2) a narrative of your work specified below. You will e-mail both items to the TA (whose address will become available in the syllabus early in the course). The items will be transmitted as attachments to your e-mail. The code will be formatted as ASCII text. The narrative will be formatted as either ASCII text or PDF. The deadline follows the rules of the homework, the beginning of the first lecture of the week following the assignment, except that you will e-mail the material rather than bringing a hard copy to class. Late submission will be accepted up to 3 days and will be penalized at 10% a day.

Code spec

Your code will extend and implement the Knapsack Problem as presented in Section 8.2 of the textbook. The extension will become clear while describing the output. Your program is expected to read a file called "input-2.txt" containing 3*k lines, li,j for i in 1,2,... k and j in 1,2,3. An example of input file is input-2.txt. For any i, line li,1 contains n positive integers separated by a comma. They are the weights W1,W2,... of a Knapsack Problem instance with n items, where n is less than 100. Likewise, line li,2 contains n positive integers separated by a comma. They are the values V1,V2,... of the items whose weights are in the previous line. Finally, line li,3 contains a single integer, the knapsack capacity. No other characters beside digits and commas are in each line.

Your program is expected to write a file called "output-2.txt" containing 5*k lines, mi,j for i in 1,2,... k and j in 1,2,...5. The output file corresponding to input-2.txt is output-2.txt. For i in 1,2,... k and j in 1,2,3, mi,j=li,j. Line mi,4 contains a single integer, the Knapsack Problem instance optimal solution. Line mi,5 contains a sequence of positive integers in increasing values. They are the indexes, starting with 1, of the items that make up an optimal solution. The general format of the output is the same as the format of the input. The extension with respect to the textbook algorithm is the generation of a set of items witnessing an optimal solution. If there is more than one set, any set is acceptable.
The weights, values, capacities and other parameters will be within reasonable ranges for a modern laptop or desktop. The programming language can be any of Java, Python, Ruby, C, and C++. Deliver all your code in a single file that can be compiled and executed on cs.pdx.edu. Your program should perform reasonably efficiently both in theory and in practice.

Narrative spec

The narrative is intended to show that you know and understand the aspects of the project related to this course, in particular, ability to: (1) extend and implement an algorithms, (2) relate theoretical complexity to practice, (3) code correct, readable and efficient programs, and (4) communicate your work clearly and concisely.

I would expect to find one or more of the following: (1) a description of the extension in the same style as the algorithm in the textbook, (2) a description of key data structures and algorithms used in the program, (3) the running time analysis of your algorithm/program, and (4) any benchmarking, profiling and/or testing employed for development.

Hints

You are encouraged to start your work early. Reading and writing the files are tasks that you already partially solved in Project 1. The Knapsack Problem is very easy to understand. Initially, you can implement a brute force program without computing the indexes. This will work for small problem instances. Then, you can replace the brute force approach with the dynamic programming approach presented in the textbook. Finally, you can introduce the extension. As the code evolves, you can use the previous version to test the current version''s correctness.

Related Discussions:- Small program on Algorithms

Sorting, explain quick sort algorithm

explain quick sort algorithm

Write down the procedure to reverse a singly linked list. , Ans: A pr...

Ans: A procedure to reverse the singly linked list: reverse(struct node **st) { struct node *p, *q, *r; p = *st; q = NULL; while(p != NULL) { r =q;

Pseudocode algorithm to print the numbers from 1 to 10, 1. Write a pseudoco...

1. Write a pseudocode algorithm to print the numbers from 1 to 10, and then from 10 to 1, using exactly one loop. 2. The function contains() takes a food as an argument and tell

Find error for curious number, #include #include int sumFact(int numb);...

#include #include int sumFact(int numb); int calculateFactorial(int digit); main() { int numb, sumfact; do{ printf ("Enter a number 1 to 9999\n"); scanf("%

How will you represent a max-heap sequentially, How will you represent a ma...

How will you represent a max-heap sequentially? Max heap, also known as the descending heap, of size n is an almost complete binary tree of n nodes such that the content of eve

Define spanning tree, Define Spanning Tree A Spanning Tree of a connect...

Define Spanning Tree A Spanning Tree of a connected graph is its linked acyclic sub graph (i.e., a tree) that having all the vertices of the graph.

Creation of doubly linked list, Program: Creation of Doubly Linked List ...

Program: Creation of Doubly Linked List OUTPUT Input the values of the element -1111 to come out : 1 Input the values of the element -1111 to come out : 2 Inpu

Calculate address of an element in an array., Q. Explain the technique to c...

Q. Explain the technique to calculate the address of an element in an array. A  25 × 4  matrix array DATA is stored in memory in 'row-major order'. If base  address is 200 and

Tree structure, We would like to implement a 2-4Tree containing distinct in...

We would like to implement a 2-4Tree containing distinct integer keys. This 2-4Tree is defined by the ArrayList Nodes of all the 2-4Nodes in the tree and the special 2-4Node Root w

Multidimensional array in one dimensional array, Q. By giving an example sh...

Q. By giving an example show how multidimensional array can be represented in one the dimensional array.

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd