Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.programming.threads > #3806 > unrolled thread

PERT (The program evaluation and review technique) for Delphi and Freepascal

Started byrami18 <coco@coco.com>
First post2017-07-02 15:01 -0400
Last post2017-07-02 15:01 -0400
Articles 1 — 1 participant

Back to article view | Back to comp.programming.threads


Contents

  PERT (The program evaluation and review technique) for Delphi and Freepascal rami18 <coco@coco.com> - 2017-07-02 15:01 -0400

#3806 — PERT (The program evaluation and review technique) for Delphi and Freepascal

Fromrami18 <coco@coco.com>
Date2017-07-02 15:01 -0400
SubjectPERT (The program evaluation and review technique) for Delphi and Freepascal
Message-ID<ojbfn4$npn$6@dont-email.me>
Hello.....


I have decided to implement PERT (The program evaluation and review 
technique), here is the result, please read carefully what follows,
i have also included a 32 bit and 64 bit windows executables called 
PERT32.exe and PERT64.exe (that take the file, with a the file format 
that i specified bellow, as an argument) inside the zip, it is a very 
powerful tool.

PERT (The program evaluation and review technique) for Delphi and Freepascal

Version: 1.0

Authors: Amine Moulay Ramdane that have written PERT, Robert Sedgewick, 
Kevin Wayne.

Email: aminer@videotron.ca

Description:

The program (or project) evaluation and review technique, commonly 
abbreviated PERT, is a statistical tool, used in project management, 
which was designed to analyze and represent the tasks involved in 
completing a given project.

First developed by the United States Navy in the 1950s, it is commonly 
used in conjunction with the critical path method (CPM).

PERT permits also to calculate:

- The longest path of planned activities to the end of the project
- The earliest and latest that each activity can start and finish 
without making the project longer
- Determines “critical” activities (on the longest path)
- Prioritize activities for the effective management and to
shorten the planned critical path of a project by:
- Pruning critical path activities
- “Fast tracking" (performing more activities in parallel)
- “Crashing the critical path" (shortening the durations of critical 
path activities by adding resources)

PERT is a method of analyzing the tasks involved in completing a given 
project, especially the time needed to complete each task, and to 
identify the minimum time needed to complete the total project. It 
incorporates uncertainty by making it possible to schedule a project 
while not knowing precisely the details and durations of all the 
activities. It is more of an event-oriented technique rather than start- 
and completion-oriented, and is used more in projects where time is the 
major factor rather than cost. It is applied to very large-scale, 
one-time, complex, non-routine infrastructure and Research and 
Development projects.

PERT and CPM are complementary tools, because "CPM employs one time 
estimate and one cost estimate for each activity; PERT may utilize three 
time estimates (optimistic, expected, and pessimistic) and no costs for 
each activity. Although these are distinct differences, the term PERT is 
applied increasingly to all critical path scheduling

You have to have a java compiler, and you have first to compile the java 
libraries with the batch file compile.bat, and after that compile the 
Delphi and Freepascal test1.pas program.

Here is the procedure to call:

procedure solvePERT(filename:string;var info:TCPMInfo;var 
finishTime:system.double;var criticalPathStdDeviation:system.double);

The arguments are:

The filename: is the file to pass, it's is organized as:

The first line is the number of jobs, the rest of each of the lines are: 
three time estimates that takes the job (optimistic, expected, and 
pessimistic) and after that the number of precedence constraints and 
after that the precedence constraints that specify that the job have to 
be completed before certain other jobs are begun.

info: is the returned information, you can get the job number and the 
start and finish time of the job in info[i].job and info[i].start and 
info[i].finish, please look at the test.pas example to understand.

finishTime: is the finish time.

criticalPathStdDeviation: is the critical path standard deviation.

I have provided you with two other functions to calculate
the probabilities using the Normal distribution using the critical path 
standard deviation and using the best estimate of completion time of the 
critical path, here
they are:

function NormalDistA (const Mean, StdDev, AVal, BVal: Extended): Single;

function NormalDistP (const Mean, StdDev, AVal: Extended): Single;

You pass the best estimate of completion time to Mean, and you pass the 
critical path standard deviation to StdDev, and you will get the 
probabilities of the value Aval or  between the values of Aval and Bval.

I have also included a 32 bit and 64 bit windows executables called 
PERT32.exe and PERT64.exe (that take the file, with a the file format 
that i specified above, as an argument) inside the zip, it is a very 
powerful tool, you need to compile CPM.java with compile.bat before 
running them.

You can download this library from:

https://sites.google.com/site/aminer68/pert-the-program-evaluation-and-review-technique-for-delphi-and-freepascal

Have fun with it !

Language: FPC Pascal v2.2.0+ / Delphi 7+: http://www.freepascal.org/

Operating Systems: Windows,

Required FPC switches: -O3 -Sd -dFPC -dFreePascal

-Sd for delphi mode....

Required Delphi switches: -$H+ -DDelphi

For Delphi XE-XE7 use the -DXE switch



Thank you,
Amine Moulay Ramdane.

[toc] | [standalone]


Back to top | Article view | comp.programming.threads


csiph-web