INTRO: Agent pointers to the task level are now treated as pointers to a resources level; hence AxR can change via annealing. PARAMETERS: -v2 0,1 : 1 means engage version 2 of ORGAHEAD, default: 0 Each task is defined on the command-line using -ts #, which stands for -task_set. A -ts # parameter can have the following old parameters apply to that task: -pcf default: 109 -pch default: 432 -tf default: .33 -tn default: .34 -th default: .33 -rc "ones_and_zeros" ==> resources (explained below) For instance: "-ts 0 -pcf 81 -pch 81 -tf .5 -tn .0 -th .5 " will make task #0 (the first task) a binary majority task. If that is followed by "-ts 1 ", then a second task (#1) is created. The number after -ts will force the creation of tasks below that number. So if you only have "-ts 3 ", the ORGAHEAD will create tasks 0-2 as well with default values. TASK X RESOURCES: -rc following -ts will define the resources for that task specified by -ts. Example: -ts 3 -rc "101010101" means every other bit is considered in the calculation of the answer for fourth task (#3). If the size of the -rc string is null or less than Task_Complexity (which is now the resource pool), then the rest is filled with 1. PERSON X TASK ASSIGNMENTS; -ta following -ts will define the task assignments for that task to sets of strings defining each level. Example: -ts 2 -ta "111 010 001" means that Task 2 will be assigned to the first three analysts, the second manager, and the third CEOS. The firs and third managers and the first two CEOS are forcibly not assigned the task. For random orgs, these are applied only if people appear in these positions. Otherwise, the assignment is a random, Bernoulli draw. So if a there exists a fourth analyst, his or her assignment to task #2 is random. A value 'n' greater than 1 will create an assignment for 'n' individuals on that level; this is just shorthand. For instance: -ta "3 3 3" is the same as -ta "111 111 111". These numbers can be 9 at max and can be used in cumulatively: -ta "999 999 999" implies the first 27 individuals of each level has the task defined by the previous -ts. PERSON X RESOURCES ASSIGNMENTS: Remember, the old task vector is now treated as the resource vector, so these linkages are defined using the old scheme (e.g. -analyst "0a0b0c0d"). MAX_TASKS is currently set to 10 MAX_PERSONS per level is currently set to 40 LIMITATIONS: Tasks are worked on consecutively each round. Neither the Task X Resources nor the Task x Person matrices change at this point. CALCULATING DIFFERENT TASKS USING A COMMON MEMORY STRUCTURE: If task #0 requires resources 110 and task #1 requires 011 and the agent sees all three resources (111), the agent's memory table has overlapping information. So let's say the agent sees 13 for task #0. The feedback process will record the feedback for 131, 132, and 133; the third position is like a "don't care". If then for task #1 the agent needs to answer for 23, he will sum up his responses from 123, 223, and 333 and pick the max from those. If the agent doesn't have a required resource, it is treated as a "don't care". That is, the feedback is spread across all values of that resource and the answer takes into account all those values. If an agent has no task assigned to him or her, s/he will use the entire memory table to formulate answers, restricted by the # of resources s/he sees. SPEED ISSUES: Having to process these "dont cares" slows down the program. Sparse TxR and AxT will cause "dont cares" to be used and the sparser these are (in conjunction with more people and bigger tasks) will significantly slow down the program. PERFORMANCE MEASURES: Only a single performance value is given, rather than separate ones for each task. Performance is the same as before, but this time it incorporates all of the tasks (i.e. divide by the number of tasks). The SD result, for now, is just an average SD over the tasks. PRINTOUTS: Preliminary assignments are shown to stdout. The Task Structure is shown following the Organizational Structure when -v2 is 1. TODO: Optimize the "dont cares" slow down. Performance for separate tasks (maybe, if needed).