Daa Unit - 4 (Jntumaterials - In)
Daa Unit - 4 (Jntumaterials - In)
in
UNIT-4
GREEDY METHOD
DEFINITION:
• A problem with N inputs will have some constraints .any subsets that satisfy these
constraints are called a feasible solution.
• A feasible solution that either maximize can minimize a given objectives function is
called an optimal solution.
3. {
5.For i=1 to n do
6.{
7.x=select(a);
8.if(feasible(solution,x))then
9.solution=union(solution,x);
10.}
11.return solution;
12.}
1
For All jntu material visit us at www.jntumaterials.in and www.jntu3u.in
* The function select an input from a[] and removes it. The select input value is assigned to X.
• Feasible is a Boolean value function that determines whether X can be included into the
solution vector.
• The function Union combines X with The solution and updates the objective function.
• The function Greedy describes the essential way that a greedy algorithm will once a
particular problem is chosen ands the function subset, feasible & union are properly
implemented.
Example
Dollars(100 cents)
Quarters(25 cents)
Dimes( 10 cents)
Nickel(5 Cents)
Pennies(1 cent)
• Our aim is paying a given amount to a customer using the smallest possible number of
coins.
• For example if we must pay 276 cents possible solution then,
2
For All jntu material visit us at www.jntumaterials.in and www.jntu3u.in
KNAPSACK PROBLEM
• we are given n objects and knapsack or bag with capacity M object I has a weight Wi
where I varies from 1 to N.
• The problem is we have to fill the bag with the help of N objects and the resulting profit
has to be maximum.
• There are so many ways to solve this problem, which will give many feasible solution for
which we have to find the optimal solution.
• But in this algorithm, it will generate only one solution which is going to be feasible as
well as optimal.
• First, we find the profit & weight rates of each and every object and sort it according to
the descending order of the ratios.
• Select an object with highest p/w ratio and check whether its height is lesser than the
capacity of the bag.
• If so place 1 unit of the first object and decrement .the capacity of the bag by the weight
of the object you have placed.
• Repeat the above steps until the capacity of the bag becomes less than the weight of
the object you have selected .in this case place a fraction of the object and come out of
the loop.
3
For All jntu material visit us at www.jntumaterials.in and www.jntu3u.in
ALGORITHM:
6.{
8.U=n;
9.For I=1 to n do
10.{
13.x[i]=1.0;U=U-w[i]
14.}
15.if(i<=n)then x[i]=U/w[i];
16.}
Example:
Capacity=20
N=3 ,M=20
Wi=18,15,10
Pi=25,24,15
4
For All jntu material visit us at www.jntumaterials.in and www.jntu3u.in
Pi/Wi=25/18=1.36,24/15=1.6,15/10=1.5
Pi = 24 15 25
Wi = 15 10 18
Xi = 1 5/10 0
PiXi=1*24+0.5*15è31.5
X1 X2 X3 WiXi PiXi
1 2/5 0 20 18.2
0 2/3 1 20 31
0 1 ½ 20 31.5
Of these feasible solution Solution 4 yield the Max profit .As we shall soon see this solution is
optimal for the given problem instance.
The problem is the number of jobs, their profit and deadlines will be given and we have to find a
sequence of job, which will be completed within its deadlines, and it should yield a maximum
profit.
Points To remember:
• To complete a job, one has to process the job or a action for one unit of time.
5
For All jntu material visit us at www.jntumaterials.in and www.jntu3u.in
àSince one job can be processed in a single m/c. The other job has to be in its waiting state
until the job is completed and the machine becomes free.
àSo the waiting time and the processing time should be less than or equal to the dead line of
the job.
ALGORITHM:
Algorithm JS(d,j,n)
d[0]= J[0]=0;
J[1]=1;
K=1;
For I =1 to n do
{ // consider jobs in non increasing order of P[I];find the position for I and check feasibility
insertion
r=k;
while((d[J[r]]>d[i] )and
if (d[J[r]]<d[I])and (d[I]>r))then
{
6
For All jntu material visit us at www.jntumaterials.in and www.jntu3u.in
J[r+1]=i;
K=k+1;
return k;
Example :
1. n=5 (P1,P2,…P5)=(20,15,10,5,1)
(d1,d2….d3)=(2,2,1,3,3)
(1) (1) 20
(2) (2) 15
(3) (3) 10
(4) (4) 5
(5) (5) 1
(1,2) (2,1) 35
(1,3) (3,1) 30
(1,4) (1,4) 25
(1,5) (1,5) 21
(2,3) (3,2) 25
(2,4) (2,4) 20
7
For All jntu material visit us at www.jntumaterials.in and www.jntu3u.in
(2,5) (2,5) 16
(1,2,3) (3,2,1) 45
(1,2,4) (1,2,4) 40
2. n=4 (P1,P2,…P4)=(100,10,15,27)
(d1,d2….d4)=(2,1,2,1)
(2,3) (9,3) 25
(2,4) (4,2) 37
(3,4) (4,3) 42
(2) (2) 10
(3) (3) 15
(4) (4) 27
8
For All jntu material visit us at www.jntumaterials.in and www.jntu3u.in
• Let G(V,E) be an undirected connected graph with vertices ‘v’ and edge ‘E’.
• A sub-graph t=(V,E’) of the G is a Spanning tree of G iff ‘t’ is a tree.3
• The problem is to generate a graph G’= (V,E) where ‘E’ is the subset of E,G’ is a
Minimum spanning tree.
• Each and every edge will contain the given non-negative length .connect all the nodes
with edge present in set E’ and weight has to be minimum.
NOTE:
Definition:
• A spanning tree of a graph is an undirected tree consisting of only those edge that are
necessary to connect all the vertices in the original graph.
• A Spanning tree has a property that for any pair of vertices there exist only one path
between them and the insertion of an edge to a spanning tree form a unique cycle.
• The cost of a spanning tree is the sum of cost of the edges in that trees.
• There are 2 method to determine a minimum cost spanning tree are
1. Kruskal’s Algorithm
2. Prom’s Algorithm.
9
For All jntu material visit us at www.jntumaterials.in and www.jntu3u.in
KRUSKAL’S ALGORITHM:
Algorithm:
Algorithm kruskal(E,cost,n,t)
I=0;mincost=0.0;
j=find(n);
k=find(v);
10
For All jntu material visit us at www.jntumaterials.in and www.jntu3u.in
i=i+1
t[i,1]=u;
t[i,2]=v;
mincost=mincost+cost[u,v];
union(j,k);
Analysis
•
The time complexity of minimum cost spanning tree algorithm in worst case is
O(|E|log|E|),
àwhere E is the edge set of G.
Step 1. In the graph, the Edge(g, h) is shortest. Either vertex g or vertex h could be
representative. Lets choose vertex g arbitrarily.
Step 2. The edge (c, i) creates the second tree. Choose vertex c as representative for
second tree.
11
For All jntu material visit us at www.jntumaterials.in and www.jntu3u.in
Step 3. Edge (g, g) is the next shortest edge. Add this edge and choose vertex g as
representative.
Step 5. Add edge (c, f) and merge two trees. Vertex c is chosen as the representative.
Step 6. Edge (g, i) is the next next cheapest, but if we add this edge a cycle would be
created. Vertex c is the representative of both.
12
For All jntu material visit us at www.jntumaterials.in and www.jntu3u.in
Step 10. Again, if we add edge (b, c), it would create a cycle. Add edge (d, e) instead to
complete the spanning tree. In this spanning tree all trees joined and vertex c is a sole
representative.
13
For All jntu material visit us at www.jntumaterials.in and www.jntu3u.in
PRIM'S ALGORITHM
Start from an arbitrary vertex (root). At each stage, add a new branch (edge) to the
tree already constructed; the algorithm halts when all the vertices in the graph have been
reached.
Algorithm prims(e,cost,n,t)
Mincost :=cost[k,l];
T[1,1]:=k; t[1,2]:=l;
For I:=1 to n do
Mincost:=mincost+ Cost[j,near[j]];
Near[j]:=0;
For k:=0 to n do
If near((near[k]≠0) and (Cost[k,near[k]]>cost[k,j])) then
Near[k]:=j;
}
Return mincost;
• The prims algorithm will start with a tree that includes only a minimum cost edge
of G.
• Then, edges are added to the tree one by one. the next edge (i,j) to be added in
such that I is a vertex included in the tree, j is a vertex not yet included, and cost
of (i,j), cost[i,j] is minimum among all the edges.
• The working of prims will be explained by following diagram
Step 1: Step 2:
Step 3: Step 4:
Step 5: Step 6:
15
For All jntu material visit us at www.jntumaterials.in and www.jntu3u.in
Graphs can be used to represent the highway structure of a state or country with
vertices representing cities and edges representing sections of highway. The edges can then be
assigned weights which may be either the distance between the two cities connected by the
edge or the average time to drive along that section of highway. A motorist wishing to drive
from city A to B would be interested in answers to the following questions:
The problems defined by these questions are special case of the path problem we study in this
section. The length of a path is now defined to be the sum of the weights of the edges on that
path. The starting vertex of the path is referred to as the source and the last vertex the
destination. The graphs are digraphs representing streets. Consider a digraph G=(V,E), with the
distance to be traveled as weights on the edges. The problem is to determine the shortest path
16
For All jntu material visit us at www.jntumaterials.in and www.jntu3u.in
from v0 to all the remaining vertices of G. It is assumed that all the weights associated with the
edges are positive. The shortest path between v0 and some other node v is an ordering among a
subset of the edges. Hence this problem fits the ordering paradigm.
Example:
Consider the digraph of fig 7-1. Let the numbers on the edges be the costs of travelling along
that route. If a person is interested travel from v1 to v2, then he encounters many paths. Some
of them are
1. v1
17
For All jntu material visit us at www.jntumaterials.in and www.jntu3u.in
18
For All jntu material visit us at www.jntumaterials.in and www.jntu3u.in
19
For All jntu material visit us at www.jntumaterials.in and www.jntu3u.in
20