Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a C program that reads a simple data file such as, text.txt 3 2 //This fir

ID: 3883352 • Letter: W

Question

Write a C program that reads a simple data file such as,

text.txt

3 2 //This first row indicates the number of jobs and the number of machines

0 5 1 10 //These other row represents a specific job combined by (machine-id, job-duration) pairs.

0 10 1 5

0 1 1 4

After that randomly initialize a genetic algorithm population (say population size = 100) and compute the makespans of the population. Select the best schedule according to makespans and output the schedule and its makespan to an outtput file. The makespan would look like this for text.txt,

makespan

21 //This first line indicates the optimization criterion

2 0 0 1 1 6 //This second line is the makespan computed from the schedule

2 1 0 6 1 16   //This is the flowshop schedule combined by (job-id, start-time) pairs

The compile should look like text.txt output.txt

Explanation / Answer

#include <stdio.h>

int nofjobs;

int nofmachines;

struct s {

int mId,duration;

};

int main() {

struct s machines[nofmachines],jobs[nofjobs];

FILE *fptr;

fptr=fopen("file.txt","rb");

fread(jobs,sizeof(jobs),1,fptr);

fread(machines,sizeof(machines),1,fptr);

for (i=0;i<nofjobs;++i) {

printf("Machine ID: %d duration: %d",jobs[i].mId,jobs[i].);

}

fclose(fptr);

}

// s1 -> machine 1

//s2->machine 2 , a[i]-> job[i] ,time-> time consumed,jobs sorted in descending order

// allocated one by one to the machine which is free.

long long ans=INT_MAX;

sort(a,a+n);

reverse(a,a+n);

int i=2;

int s1=machines[0];

int s2=machines[1];

long long time=min(s1,s2);

s1-=time;

s2-=time;

while(i<n)

{

if(s1==0 && s2==0)

{

s1=a[i];

if(i+1<n) s2=a[i+1];

int c=min(s1,s2);

time+=c;

s1-=c;

s2-=c;

i+=2;

continue;

}

else

{

if(s1<s2) swap(s1,s2);

s2=a[i];

int c=min(s1,s2);

time+=c;

s1-=c;

s2-=c;

i++;

}

}

assert(s1*s2==0);

ans = min(ans,time+max(s1,s2));

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote