Sunteți pe pagina 1din 9

Author : Bhalchandra Shirole

Dump Truck Problem


import java.io.*;
import java.util.*;
class event
{
String type;
int time;
int truck;
public event(String type,int time,int truck)
{
this.type=type;
this.time=time;
this.truck=truck;
}
public void display()
{
System.out.println("("+type+", "+time+", truck"+truck+")");
}
}
class fel
{
event e[]=new event[1000];
int size;
public fel()
{
size=0;
}
public void add(event a)
{
if(size<1000)
{e[size]=a;
size++;
}
else
System.out.println("FEL full");
}

public event remove()


{
int min=0;int pos=0;
for(int i=0;i<size;i++)
if(e[i]!=null)
{min=e[i].time;break;}
for(int i=0;i<size;i++)
if(e[i]!=null && e[i].time<=min)

{min=e[i].time;pos=i;}
event ret=new event(e[pos].type,e[pos].time,e[pos].truck);
e[pos]=null;
return ret;
}
public void display()
{
for(int i=0;i<1000;i++)
if(e[i]!=null)
e[i].display();
}

}
class queue
{
int q[];
int f,r;
public queue()
{
q=new int[100];
f=0;
}
public void add(int truck)
{
q[f]=truck;
f++;

}
public int remove()
{
for(int i=0;i<100;i++)
if(q[i]!=0)
{int temp=q[i];q[i]=0;return temp;}
return 0;
}
public void display()
{
for(int i=0;i<100;i++)
if(q[i]!=0)
System.out.print(" DT"+q[i]);
}

}
class state
{
static int lq,l,wq,w,clock;
}
class dump
{
public static void main(String args[])
{
System.out.println("Main started");
fel list=new fel();
queue lq=new queue() ;
queue wq=new queue() ;
initialise(list,lq,wq);
System.out.println("main ended");
}
public static void initialise(fel list,queue lq,queue wq)
{
event endevent=new event("end",100,0);
list.add(endevent);
state.lq=3;
state.wq=0;
state.l=2;
state.w=1;
state.clock=0;
lq.add(4);
lq.add(5);
lq.add(6);
list.add(new event("endload",5,3));
list.add(new event("endload",10,2));
list.add(new event("endwait",12,1));
start(list,lq,wq);
}
public static int loadtime()
{
Random rand=new Random(10);
int temp=rand.nextInt();
if(temp<3)
return 5;
if(temp<8)

return 10;
return 15;
}
public static int weightime()
{
Random rand=new Random(10);
int temp=rand.nextInt();
if(temp<7)
return 12;
return 16;
}
public static int traveltime()
{
Random rand=new Random(10);
int temp=rand.nextInt();
if(temp<4)
return 40;
if(temp<7)
return 60;
if(temp<9)
return 80;
return 100;
}
public static void start(fel list,queue lq,queue wq)
{
System.out.println("\n ------------------------------------------------- \n Clock
"+state.clock);
System.out.println("System states");
System.out.println("LQ(t) "+state.lq+" WQ(t) "+state.wq+" L(t) "+state.l+" W(t)
"+state.w);
System.out.print("loader queue ");
lq.display();
System.out.print("\n weigh queue ");
wq.display();
System.out.print("\n Fel \n");
list.display();
//System.out.println(list.size);
event emminent=list.remove();
state.clock=emminent.time;
if(emminent.type.equals("endload"))
endload(list,emminent,lq,wq);
if(emminent.type.equals("endwait"))
endwait(list,emminent,lq,wq);
if(emminent.type.equals("arrivalload"))

arrload(list,emminent,lq,wq);
if(emminent.type.equals("end"))
return;
start(list,lq,wq);
}
public static void endload(fel list,event emminent,queue lq,queue wq)
{
int next;
if(state.w<1)
{state.w++;state.l--;next=state.clock+weightime();list.add(new
event("endwait",next,emminent.truck));}
//add
if(state.w==1)
{state.wq++;state.l--;wq.add(emminent.truck);}
//add
if(state.lq!=0)
{state.l++;state.lq--;next=state.clock+loadtime();list.add(new
event("endload",next,lq.remove()));}
}
public static void endwait(fel list,event emminent,queue lq,queue wq)
{
int next;
state.w--;next=state.clock+traveltime();list.add(new
event("arrivalload",next,emminent.truck));
if(state.wq!=0)
{state.w++;state.wq--;next=state.clock+weightime();list.add(new
event("endwait",next,wq.remove()));}
}
public static void arrload(fel list,event emminent,queue lq,queue wq)
{
int next;
if(state.l<2)
{state.l++;next=state.clock+loadtime();list.add(new
event("endload",next,emminent.truck));}
//add
if(state.l==2)
{state.lq++;lq.add(emminent.truck);}
//add
}
}

OUTPUT
Main started
------------------------------------------------Clock 0
System states
LQ(t) 3 WQ(t) 0 L(t) 2 W(t) 1
loader queue DT4 DT5 DT6
weigh queue
Fel
(end, 100, truck0)
(endload, 5, truck3)
(endload, 10, truck2)
(endwait, 12, truck1)
------------------------------------------------Clock 5
System states
LQ(t) 2 WQ(t) 1 L(t) 2 W(t) 1
loader queue DT5 DT6
weigh queue DT3
Fel
(end, 100, truck0)
(endload, 10, truck2)
(endwait, 12, truck1)
(endload, 10, truck4)
------------------------------------------------Clock 10
System states
LQ(t) 1 WQ(t) 2 L(t) 2 W(t) 1
loader queue DT6
weigh queue DT3 DT4
Fel
(end, 100, truck0)
(endload, 10, truck2)
(endwait, 12, truck1)
(endload, 15, truck5)
------------------------------------------------Clock 10
System states
LQ(t) 0 WQ(t) 3 L(t) 2 W(t) 1
loader queue
weigh queue DT3 DT4 DT2
Fel
(end, 100, truck0)

(endwait, 12, truck1)


(endload, 15, truck5)
(endload, 15, truck6)
------------------------------------------------Clock 12
System states
LQ(t) 0 WQ(t) 2 L(t) 2 W(t) 1
loader queue
weigh queue DT4 DT2
Fel
(end, 100, truck0)
(endload, 15, truck5)
(endload, 15, truck6)
(arrivalload, 52, truck1)
(endwait, 24, truck3)
------------------------------------------------Clock 15
System states
LQ(t) 0 WQ(t) 3 L(t) 1 W(t) 1
loader queue
weigh queue DT4 DT2 DT6
Fel
(end, 100, truck0)
(endload, 15, truck5)
(arrivalload, 52, truck1)
(endwait, 24, truck3)
------------------------------------------------Clock 15
System states
LQ(t) 0 WQ(t) 4 L(t) 0 W(t) 1
loader queue
weigh queue DT4 DT2 DT6 DT5
Fel
(end, 100, truck0)
(arrivalload, 52, truck1)
(endwait, 24, truck3)
------------------------------------------------Clock 24
System states
LQ(t) 0 WQ(t) 3 L(t) 0 W(t) 1
loader queue
weigh queue DT2 DT6 DT5
Fel

(end, 100, truck0)


(arrivalload, 52, truck1)
(arrivalload, 64, truck3)
(endwait, 36, truck4)
------------------------------------------------Clock 36
System states
LQ(t) 0 WQ(t) 2 L(t) 0 W(t) 1
loader queue
weigh queue DT6 DT5
Fel
(end, 100, truck0)
(arrivalload, 52, truck1)
(arrivalload, 64, truck3)
(arrivalload, 76, truck4)
(endwait, 48, truck2)
------------------------------------------------Clock 48
System states
LQ(t) 0 WQ(t) 1 L(t) 0 W(t) 1
loader queue
weigh queue DT5
Fel
(end, 100, truck0)
(arrivalload, 52, truck1)
(arrivalload, 64, truck3)
(arrivalload, 76, truck4)
(arrivalload, 88, truck2)
(endwait, 60, truck6)
------------------------------------------------Clock 52
System states
LQ(t) 0 WQ(t) 1 L(t) 1 W(t) 1
loader queue
weigh queue DT5
Fel
(end, 100, truck0)
(arrivalload, 64, truck3)
(arrivalload, 76, truck4)
(arrivalload, 88, truck2)
(endwait, 60, truck6)
(endload, 57, truck1)
-------------------------------------------------

Clock 57
System states
LQ(t) 0 WQ(t) 2 L(t) 0 W(t) 1
loader queue
weigh queue DT5 DT1
Fel
(end, 100, truck0)
(arrivalload, 64, truck3)
(arrivalload, 76, truck4)
(arrivalload, 88, truck2)
(endwait, 60, truck6)
------------------------------------------------Clock 60
System states
LQ(t) 0 WQ(t) 1 L(t) 0 W(t) 1
loader queue
weigh queue DT1
Fel
(end, 100, truck0)
(arrivalload, 64, truck3)
(arrivalload, 76, truck4)
(arrivalload, 88, truck2)
(arrivalload, 100, truck6)
(endwait, 72, truck5)
------------------------------------------------Clock 64
System states
LQ(t) 0 WQ(t) 1 L(t) 1 W(t) 1
loader queue
weigh queue DT1
Fel
(end, 100, truck0)
(arrivalload, 76, truck4)
(arrivalload, 88, truck2)
(arrivalload, 100, truck6)
(endwait, 72, truck5)
(endload, 69, truck3)
------------------------------------------------Clock 69
System states
LQ(t) 0 WQ(t) 2 L(t) 0 W(t) 1
loader queue
weigh queue DT1 DT3
Fel

(end, 100, truck0)


(arrivalload, 76, truck4)
(arrivalload, 88, truck2)
(arrivalload, 100, truck6)
(endwait, 72, truck5)
------------------------------------------------Clock 72
System states
LQ(t) 0 WQ(t) 1 L(t) 0 W(t) 1
loader queue
weigh queue DT3
Fel
(end, 100, truck0)
(arrivalload, 76, truck4)
(arrivalload, 88, truck2)
(arrivalload, 100, truck6)
(arrivalload, 112, truck5)
(endwait, 84, truck1)
------------------------------------------------Clock 76
System states
LQ(t) 0 WQ(t) 1 L(t) 1 W(t) 1
loader queue
weigh queue DT3
Fel
(end, 100, truck0)
(arrivalload, 88, truck2)
(arrivalload, 100, truck6)
(arrivalload, 112, truck5)
(endwait, 84, truck1)
(endload, 81, truck4)
------------------------------------------------Clock 81
System states
LQ(t) 0 WQ(t) 2 L(t) 0 W(t) 1
loader queue
weigh queue DT3 DT4
Fel
(end, 100, truck0)
(arrivalload, 88, truck2)
(arrivalload, 100, truck6)
(arrivalload, 112, truck5)
(endwait, 84, truck1)

------------------------------------------------Clock 84
System states
LQ(t) 0 WQ(t) 1 L(t) 0 W(t) 1
loader queue
weigh queue DT4
Fel
(end, 100, truck0)
(arrivalload, 88, truck2)
(arrivalload, 100, truck6)
(arrivalload, 112, truck5)
(arrivalload, 124, truck1)
(endwait, 96, truck3)
------------------------------------------------Clock 88
System states
LQ(t) 0 WQ(t) 1 L(t) 1 W(t) 1
loader queue
weigh queue DT4
Fel
(end, 100, truck0)
(arrivalload, 100, truck6)
(arrivalload, 112, truck5)
(arrivalload, 124, truck1)
(endwait, 96, truck3)
(endload, 93, truck2)
------------------------------------------------Clock 93
System states
LQ(t) 0 WQ(t) 2 L(t) 0 W(t) 1
loader queue
weigh queue DT4 DT2
Fel
(end, 100, truck0)
(arrivalload, 100, truck6)
(arrivalload, 112, truck5)
(arrivalload, 124, truck1)
(endwait, 96, truck3)
------------------------------------------------Clock 96
System states
LQ(t) 0 WQ(t) 1 L(t) 0 W(t) 1
loader queue
weigh queue DT2

Fel
(end, 100, truck0)
(arrivalload, 100, truck6)
(arrivalload, 112, truck5)
(arrivalload, 124, truck1)
(arrivalload, 136, truck3)
(endwait, 108, truck4)
------------------------------------------------Clock 100
System states
LQ(t) 0 WQ(t) 1 L(t) 1 W(t) 1
loader queue
weigh queue DT2
Fel
(end, 100, truck0)
(arrivalload, 112, truck5)
(arrivalload, 124, truck1)
(arrivalload, 136, truck3)
(endwait, 108, truck4)
(endload, 105, truck6)
main ended
Process completed.

S-ar putea să vă placă și