{'fraction_non_alphanumeric': 0.02357320099255583, 'fraction_numerical': 0.0, 'mean_word_length': 5.0411985018726595, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Divisible and Movable Activities in Critical-Path Analysis

Certain jobs in large projects do not have a unique "location" in the critical-path network; they may be moved into certain slack intervals, for example, or may even be divisible into smaller subtasks, and 'tucked in' at several locations. A previous paper gave an analysis of a model in which a single job can be divided up in any manner among an arbitrary number of locations; the resulting algorithm was of the optimal-network-flow type, which can be simply and efficiently solved using available computer codes. The first part of the present paper extends this model to multiple jobs of divisible type. The general approach is via the decomposition method of linear programming; however, the resulting algorithm is again fairly simple. Optimal cost-time solutions, possibly infinite or optimal network flow solutions, possibly infeasible are generated by known algorithms. The resulting schedules or cuts are then combined in a simple, special-structure linear program whose dimensionality is equal to the number of divisible groups. Bounds on the nonintegrality of the final allocations can also be determined. When these special jobs can only be moved about the network in their entirety, or in certain indivisible modules, the probblem takes on the form of an integer program. The second part of the paper gives a branch-and-bound procedure for the problem of movable activities, together with efficient heuristics for arbitrating and bounding these locations, using only the ordinary critical-path algorithm. Examples are given for both models.