Выбрать главу

Роботите имаха малки вградени процесори, които можеха да бъдат препрограмираш чрез радиовръзка от компютрите в завода за всяка нова задача, която трябвайте да се изпълни. Това позволяваше на роботите да вършат разнообразната си дейност с локално самоуправление и да освободят централните компютри за други операции, докато чакат поредния сигнал „Свърших — какво да правя сега?“. Така че съществуваха доста софтуеърни механизми за пренасяне на данни между компютрите в завода и отдалечените на разстояние процесори, вградени в роботите.

Когато започна прехвърлянето на файла „Как се строи завод“ от корабните компютри към завод 1, задействуваха се нарушените софтуеърни връзки. Вместо да поемат своя път към централната система на завода, подфайловете с производствената информация за различните роботи бяха просто препредадени от завода и излъчени в локалната памет на съответните типове роботи, за които се отнасяха. В информационната банка на завода не остана нито едно копие. На всичко отгоре в целия този процес оригиналите в кораба стигнаха до самоунищожение и бяха безвъзвратно изличени. Единствените копия от подфайла „Как се прави робот тип Фред“ бяха тези, които попаднаха във Фред-роботите на повърхността. Същото важеше и за всички останали типове.

Така че когато контролната програма на завода нареди на планиращата програма да запланува производство на нови роботи и планиращата програма подаде искане до програмата, управляваща информационната банка за съответните подфайлове, тя установи, че не може да ги достави, нито пък може да получи ново копие от кораба. Програмата, управляваща информационната банка, съобщи за възникналия проблем на планиращата програма. Планиращата програма се оплака на контролната програма. Контролната програма обвини програмата, отговаряща за комуникациите. Програмата, отговаряща за комуникациите, поиска обяснение от програмата-организатор на комуникациите, и след множество взаимни електронни обвинения и контраобвинения дневниците и диагностичните програми на системата уточниха, че липсващите подфайлове са забелязани за последен път, когато са се излъчвали през предавателните буфери към роботите навън. В изпълнение на строгата заповед на контролната програма, програмата, отговаряща за комуникациите, подбра един Фред от първия тип роботи по списъка на планиращата програма и му изпрати съобщение да върне подфайла си обратно.

Този Фред обаче нямаше пълно копие от подфайла, просто локалната му памет не беше достатъчно голяма, за да го поеме целия. По същата причина нито един от останалите роботи не беше в състояние да изпрати цялото копие. Подобно на кофи, наливали с пожарникарски маркуч, информационният поток беше ги пълнил един по един и всеки беше получил различна доза от съдържанието на подфайла. Но помежду си изглежда бяха успели да го съхранят целия. Така че контролната програма трябваше да извлече различните части от различни Фред-роботи и да ги подреди отново по смислен начин. Ето как се стигна до варианта, който накрая тя връчи на планиращата програма за производство.

За нещастие указанието да се съхрани информацията за бъдещи справки потъна някъде и съответният подфайл „Как се прави“ за всяка група Фред-роботи биваше незабавно заличаван веднага щом отговорникът за производството приключеше с него. Така че когато завод 1, след като известно време беше произвеждал части за завод 2 и вече следваше да изпрати работния си контингент да подбере площадка за завод 3, контролната програма трябваше отново да премине през цялата тази безкрайна бъркотия. Същият процес продължаваше да се повтаря винаги когато се налагаше да се произведе нова партида роботи, за да се подменят повредените или вече негодните.

Всичко това отнемаше прекалено много време на процесорите, натоварваше комуникационните канали и изобщо беше неефективно, както би отбелязал загрижено някой счетоводител. Чуждите счетоводители, които въртяха цялата работа — както винаги — бяха втълпили съответните правила на чуждите програмисти и те бяха създали контролната програма като гъвкава, самаусъвършенстваща се програма, способна да разкрива подобни недостатъци, да се тормози от тях и да търси начин да ги отстрани. След няколко експеримента контролната програма установи, че някои от Фред-роботите съдържат около половината от своя подфайл, което означаваше, че пълно копие може да се получи, като се извличат данни само от два индивида вместо от много. Тя съответно набеляза такива допълващи се двойки и започна да ги търси за постъпващите от планиращата програма заявки, пренебрегвайки останалите.