Agoric Papers

From MontpeLLIA
Revision as of 17:49, 13 July 2025 by Sysop (talk | contribs) (Created page with " Marchés et calcul: les systèmes ouverts agoriques Marque S. Miller K. Eric Drexler - 1988 __TOC__ ==1. Introduction== Un problème central de l'informatique est l'intégration des connaissances et la coordination des actions dans les systèmes complexes. On peut en dire autant de la société. Dans la société, cependant, ce problème est confronté depuis des millénaires. plutôt que des décennies, et diverses solutions ont été testées pour l'efficacité...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


Marchés et calcul: les systèmes ouverts agoriques

Marque S. Miller K. Eric Drexler - 1988



1. Introduction

Un problème central de l'informatique est l'intégration des connaissances et la coordination des actions dans les systèmes complexes. On peut en dire autant de la société. Dans la société, cependant, ce problème est confronté depuis des millénaires. plutôt que des décennies, et diverses solutions ont été testées pour l'efficacité grâce à des centaines de générations de concurrence. Efforts en vue comprendre les institutions qui en résultent et décrire leurs principes; Le fonctionnement a engendré la science de l'économie.

Contrairement aux impressions communes (favorisées par la couverture médiatique de la politique et le marché boursier), la plupart des enquêtes économiques n'ont pas grand-chose à voir avec deviner les tendances économiques. L'économie a de nombreuses branches; la branche la plus pertinente pour le présent document étudie les conséquences de la poursuite des objectifs dans les domaines suivants: les contraintes de connaissances et de ressources limitées, et études les institutions et les modèles de comportement adaptés à cette poursuite. C'est ce que la branche de l'économie peut sans embarras être qualifiée de science, puisque il répond aux critères d'une discipline scientifique; [ 11, 2 . . . . . . . . . . . . .

Au niveau le plus large de l'abstraction, les problèmes de la société et de l'abstraction la coordination informatique est fondamentalement similaire. Béton les parallèles, cependant, sont rugueux: l'espace mémoire est un peu comme la terre, ou peut-être une matière première; le temps de processeur est un peu comme la main-d'œuvre, ou comme fuel; les objets logiciels sont comme des travailleurs, ou peut-être comme des gestionnaires ou les entreprises. Dans [II) nous énumérer un certain nombre de données fondamentales différences entre les marchés informatiques et les marchés humains. Par exemple, à l'intérieur un système informatique, les activités ne doivent pas produire de pollution ni d'autres effets sur les objets non consentants; le produit le plus typique, information, ne constitue pas un inventaire physique déplété; les forces de travail (copies d'objets spécialisés) peuvent être étendues presque instantanément et peut être réduit sans angoisse humaine.

Malgré ces profondes différences, nous affirmons que les parallèles fondamentaux entre les problèmes de l'organisation sociale et informatique sont solides suffisamment pour motiver l'importation en gros de modèles économiques et métaphores dans le domaine informatique, au moins sur une base d'essai. Ces différences suggèrent toutefois que les formes d'organisation ou sont rejetés dans un domaine peuvent s'avérer réalisables et souhaitables dans l'autre. Par exemple, la capacité des systèmes de calcul à établir des règles comme véritables contraintes lorsqu'une personne morale le système ne peut que sanctionner les violations rend possibles des formes de organisation qui ne peut être approximée que dans la société.

1.1. Pourquoi se concentrer sur les marchés?

Pour diverses raisons, ce travail explore essentiellement les marchés purs comme modèles d'organisation économique pour le calcul, étayés par un minimum Cadre «légaux» des contraintes fondamentales. Un grand nombre de résultats économiques La théorie et l'expérience historique indiquent que les marchés sont, dans le domaine de la promotion de la coopération, dans le domaine de l'efficacité et de la coopération les interactions entre les entités ayant des connaissances, des compétences et des objectifs divers. Historiquement, ces entités ont été des êtres humains, mais économiques s'étendent aux agents de décision en général et, partant, des objets logiciels. Sur II, les marchés sont considérés comme des écosystèmes et comparés à d'autres, tels que les écosystèmes biologiques les écosystèmes. Cet examen montre comment les règles distinctives des marchés (telles que la répression de la force et la protection des marques de fabrique ou de commerce) la diffusion de la coopération (et encourager les entités à soutenir la concurrence pour qu'elles soient les coopérateurs efficaces).

Le présent document fait valoir que les écosystèmes de marché sont particulièrement appropriés, bases pour des systèmes ouverts (II), dans lesquels l'évolution des logiciels entre les services d'un système informatique distribué; différents propriétaires poursuivant des objectifs différents. Quand il est également ouvert à l'homme la société, les écosystèmes de marché informatique permettront aux auteurs divers de créer des entités logicielles et recevoir des redevances pour les services qu'elles fournir et permettre à divers utilisateurs de mouler le système à leurs besoins en exerçant leur pouvoir de marché en tant que consommateurs. Les marchés informatiques peuvent être mis en continu avec l'écosystème de marché de la société humaine.

1.2. Croquis d'un marché informatique

Cette ligne d'enquête nous amène à proposer ce que l'on peut appeler le l'approche adarique des systèmes logiciels. Agoric provient d'agora, terme grec pour une réunion et une place de marché. Un système agorique est défini en tant que système logiciel utilisant des mécanismes de marché, sur la base de fondations prévoir l'encapsulation et la communication d'informations, l'accès, et les ressources entre objetsobjects. Chacune de ces notions joue un le rôle de soutien aux marchés de calcul.

Ici, la notion d'« objet » est indépendante de l'échelle et du langage, et n'inclut aucune notion d'héritage. Un objet peut être petit et écrit dans un langage orienté objet; il pourrait tout aussi bien être un grand, processus de fonctionnement (tel qu'un système expert ou une base de données) codé interne de quelque manière que ce soit. Les objets sont supposés communiquer par passage de messages et interagir selon les règles de l'acteur sémantique [33,4, qui peut être appliqué au niveau de la langue ou du système d'exploitation. Ces règles formaliser la notion d'entités distinctes, asynchrones et en interaction, et sont donc appropriés pour décrire les participants à la procédure de calcul marchés.

L'encapsulation des informations garantit qu'un objet ne peut pas directement lire ou altérer avec le contenu d'un autre; la communication permet s'oppose à l'échange d'informations par consentement mutuel. L'encapsulation et la communication d'accès garantit de la même manière que les droits de communication contrôlés et transférables uniquement par consentement mutuel. Ces propriétés correspondent à des éléments de la programmation traditionnelle orientée objet pratique; dans les grands systèmes, ils facilitent le raisonnement local sur les problèmes de compétence sur les calculs que le système peut effectuer. Extension de l'encapsulation à l'inclusion des ressources de calcul, on entend le maintien chaque objet responsable du coût de son activité; la communication de ressources permet aux objets de les acheter et de les vendre. En de grands systèmes, ces extensions facilitent le raisonnement local sur problèmes de performance - sur le temps et les ressources consommés dans les résultats un calcul donné. Fondements informatiques adaptés aux marchés offrent des avantages dans le domaine des performances tels que ceux proposés dans le domaine domaine de compétence par programmation orientée objet.

Pour le concret, examinons brièvement une forme possible de système fondé sur le marché. Dans ce système, l'espace de stockage des ressources de la machine, le temps de traitement, et ainsi de suite, les propriétaires, et les propriétaires facturent d'autres objets à utiliser pour ces ressources. Objets, à leur tour, répercutent ces coûts sur les objets qu'ils servent, ou à un objet représentant l'extérieur l'utilisateur; ils peuvent ajouter des redevances, et donc gagner un profit. L'ultime L'utilisateur prend donc en charge tous les coûts directement ou indirectement encourus. Si le l'utilisateur final possède également les ressources de la machine (et de tous les objets de charge redevances), alors la monnaie circule simplement à l'intérieur du système, encourant des frais généraux de calcul et (un espoir) de fournir des informations qui aident coordonner les activités de calcul.

2. Aperçu des sections ultérieures

²Section 3 ²: Calcul et ordre économique. Les caractéristiques de base des marchés humains mettent en évidence la nature attendue de les marchés de calcul. La présente section décrit quelques-unes de ces certaines des questions spéciales soulevées dans le contexte de calcul.

²Section 4² : Fondations. Les fondements nécessaires pour les systèmes existants ouverts peuvent être résumés en tant qu'appui à la l'encapsulation et la communication d'informations, d'accès et de ressources. La présente section décrit ces fondations et leur rôle dans le calcul marchés.

²Section 5² : Agents et stratégies. Le les fondements des marchés informatiques ne traitent ni la gestion des ressources (telles que la planification des processeurs et la collecte des ordures) ou du marché les opérations. La présente section décrit l'idée d'agents commerciaux et leur utilisation à la fois pour remplacer des algorithmes centralisés d'allocation de ressources (examiné plus avant par [III) et dans la gestion un comportement complexe du marché.

²Section 6²: Systèmes agoriques dans les grandes catégories. On s'attend à ce que les systèmes obsolètes soient importants et dynamiques. propriétés. La présente section décrit comment ils peuvent fournir un plus grand nombre de le marché des logiciels productifs dans la société humaine - ouvre de grandes nouvelles entreprises et comment ils peuvent promouvoir l'objectif d'une construction artificielle l'intelligence.

²Section 7 ²: Absence de systèmes agoriques. Si le calcul basé sur le marché est une bonne idée, pourquoi n'a-t-il pas encore été développé? La présente section tente de montrer pourquoi l'absence actuelle de les systèmes agoriques sont compatibles avec leur bonne idée.

²Appendice I² : Problèmes, niveaux et échelle. Les systèmes agoriques ouverts seront vastes et complexes, couvrant de nombreux niveaux de l'ampleur et la complexité. Cette section examine comment des questions telles que la sécurité, le raisonnement, et la confiance se manifestent à différents niveaux d'agoricité systèmes.

²Appendice II²: Comparaison avec d'autres systèmes. On y trouve des œuvres qui sont passées de ceux qui établissent des analogies entre la société humaine et le calcul systèmes à ceux qui explorent le calcul adaptatif à partir d'un point de vue.

3. Computation et ordre économique

Les caractéristiques de base des marchés informatiques sont mieux comprises par les comparer aux marchés humains. De nombreux compromis importants, tels que ceux qui existent entre les mécanismes du marché et la planification centrale, ont déjà été examinés dans le contexte de la société humaine.

3.1. Organisation du marché

Considérez les dimensions impressionnantes de la communauté américaine. . . un travail force de 80 000 000. . . . . . . . Qui a conçu et qui dirige maintenant cette vaste machine de production et de distribution? Il est certain que résoudre les problèmes complexes de l'allocation des ressources dans un vaste économie, une orientation centrale est nécessaire. . . . Mais l'économie américaine l'activité n'est ni dirigée, ni planifiée, ni contrôlée par une activité économique czar-gouvernementale ou privé.
– A. A. Alchian et W. R. Allen, 1968 [5

Deux formes extrêmes d'organisation sont l'économie de commandement et le marché l'économie. Les premières tentatives visant à faire des compromis économiques dans un contexte rationnel, Plan-cadre central et mise en œuvre de ce plan par le biais de plans détaillés l'orientation centrale de l'activité productive. Ce dernier permet d'assurer les chimiothérapies à faire par les décideurs locaux, guidées par des signaux de prix et limités par des règles générales.

Le modèle de commande a souvent été considéré comme plus «rationnel», depuis lors. il implique l'application visible de la raison au problème économique comme un tout. Les alternatives ont souvent été considérées comme irrationnelles et l'invitation au chaos. Ce point de vue, cependant, sent de la créationniste l'illusion suppose qu'un résultat cohérent exige un plan directeur. En l'actualité, la planification décentralisée est potentiellement plus rationnelle, puisqu'elle implique davantage d'esprits en tenant compte d'un plus grand nombre d'informations. En outre, La théorie économique montre à quel point les résultats cohérents, efficaces et mondiaux sont systématiquement émergent des interactions du marché local. (La nature et la fonction de les prix et les mécanismes du marché sont une source notoire de la place la confusion tout comme Aristote a jeté des pierres et pourtant des mécaniciens mal compris, Les gens négocient et pourtant mal comprennent les marchés. Alchian et Allen 5 donner une bonne base à l'origine des concepts de base et les résultats de l'analyse économique.)

Si l'on s'attendait à ce que les marchés soient applicables au temps de traitement, la mémoire l'espace, et les services de calcul à l'intérieur des ordinateurs? Usines d'acier, exploitations agricoles, les compagnies d'assurance, les entreprises de logiciels, les machines à vendre, tous les fournisseurs leurs biens et services dans un contexte de marché; un mécanisme qui s'étend ainsi Une large gamme peut bien être étendue davantage.

Toutefois, comme on le verra, une gamme de choix entre les choix centraux purs. la planification et l'application universelle fine du marché mécanismes. Les marchés informatiques, comme les marchés humains, seront constitués de les îles de direction centrale dans une mer de commerce.

3.2. Encapsulation et biens

La raison d'être de la garantie à chaque individu d'une fourchette connue à l'intérieur qu'il peut décider de ses actions, c'est lui permettre de faire l'utilisation la plus complète de ses connaissances. . . . La loi lui indique quels faits il peut et ainsi allonger la plage à l'intérieur de laquelle il peut prédire conséquences de ses actes.
– F. A. Hayek, 19606
. . . la loi devrait toujours faire confiance aux gens avec les soins qui leur sont propres intérêt, comme dans leur situation locale, ils doivent généralement être en mesure de jugez mieux que le législateur ne peut le faire.
– A. Smith, 17767

L'informatique a commencé, assez naturellement, avec une planification centrale appliquée à petites machines maniables. Les premiers programmes sur les premiers ordinateurs J'étais comme Robinson Crusoé sur une île vide. Ils avaient peu de problèmes de la coordination, et la complexité de leurs affaires pourrait (au premier rang) être gérés par un seul esprit.

Au fur et à mesure que la complexité des logiciels augmentait, les programmes avec plusieurs sous-programmes sont devenus l'équi-valent des ménages ou des bureaucraties autocratiques avec une division importante du travail. De plus en plus, cependant, des bogues apparaîtraient parce que la main droite ne savait pas ce que la main gauche avait prévu, et modifierait ainsi les données partagées de manière inattendue.

Pour lutter contre ce problème, une programmation moderne orientée objet (à parphrase) «saisit à chaque objet un espace connu à l'intérieur duquel il peut décider de ses actions, en permettant au programmeur d'utiliser au mieux de ses connaissances. L'encapsulation lui dit quels faits il peut compter et ainsi élargit la plage à l'intérieur de laquelle il peut prédire les conséquences de ses actes ». Bref, motivés par la nécessité d'une décentralisation la planification et la division du travail, l'informatique a réinventé la notion de droits de propriété.

La direction centrale de la représentation et du traitement des données a été remplacés par des mécanismes décentralisés, mais direction centrale des ressources L'allocation reste. plutôt que «de faire confiance aux objets avec soin de leur l'intérêt propre, dans leur situation locale», le programmeur de systèmes tente de légiférer sur une solution générale. Ces solutions générales, toutefois, ne permet pas de faire des compromis qui tiennent compte de la des mérites particuliers d'activités particulières à des moments particuliers.

3.3. Les arbitrages par le commerce

. . . une capacité à trouver des circonstances particulières. . . devient efficaces uniquement si les détenteurs de ces connaissances sont informés par le marché quels types de choses ou de services sont souhaités, et comment d'urgence Ils sont recherchés.
– F. A. Hayek, 1978 [8
. . l'interaction spontanée d'un certain nombre de personnes, chacune possédant Seuls des éléments de connaissance, il s'agit d'une situation dans laquelle les prix correspondent aux coûts, etc., et qui pourraient être réalisés par une direction délibérée uniquement par quelqu'un qui possédait le combiné connaissance de toutes ces actualités individes. . . . l'observation empirique que les prix ont tendance à correspondre aux coûts était le début de notre science.
– F. A. Hayek, 19379

Faire confiance aux objets avec les décisions concernant les arbitrages des ressources senser seulement s'ils sont conduits vers des décisions qui servent le général intérêt - il n'y a pas d'argument moral pour garantir la liberté, la dignité, et l'autonomie des programmes simples. Mécanismes de prix fonctionnant correctement peut fournir les incitations nécessaires.

Le coût de la consommation d'une ressource est un coût d'opportunité - le coût de l'abandon d'autres utilisations. Sur un marché entier d'entités qui tentent de produire des produits qui se vendront plus que le coût des besoins les intrants, la théorie économique indique que les prix reflètent généralement ces les coûts.

Considérons un producteur, tel qu'un objet qui produit des services. Le prix d'une contribution montre à quel point elle est désirée par le reste du système; Des prix élevés des intrants (coûts) décourageront les utilisations à faible valeur ajoutée. Le prix de un produit montre également à quel point il est souhaité par le reste de la système; les prix élevés de la production encourageront la production. Pour augmenter (plôt que détruire) valeur comme "jugé par le reste du système comme entier», un producteur n'a qu'à s'assurer que le prix de son produit dépasse les prix (coûts) des intrants consommés. C'est simple, local la règle de décision tire son pouvoir de la capacité des prix du marché à résumer les informations globales sur les valeurs relatives.

En tant que lauréat du prix Nobel F. A. Hayek observe, «... la raison entière de la raison pour laquelle l'emploi du mécanisme de prix consiste à dire aux individus ce qu'ils sont faire, ou peut faire, a pour une raison quelconque dont ils ne sont pas responsables deviennent moins ou plus demandées. . . . Le terme «incitations» est souvent utilisé à cet égard, avec des connotations quelque peu trompeuses, comme si le Le problème était d'inciter les gens à s'exercer suffisamment. Toutefois, le principal guide que les prix offrent n'est pas tant comment agir, mais que faire?» [ 8La présente observation s'applique clairement à l'idée d'incitations aux logiciels; l'objectif n'est pas de faire de la sueur logicielle, mais pour l'orienter dans la réalisation de choix qui servent le d'intérêt général.

Ces choix constituent des compromis. Avec traitement fini et mémoire les ressources, l'adoption d'une action empêche toujours de prendre d'autres mesures. Avec les prix et le commerce, les objets seront incités à renoncer ressources lorsque (et seulement lorsque) cela promet d'augmenter leur montant net Recettes. En négociant pour augmenter leurs revenus, ils feront des compromis qui allouent des ressources à des utilisations à plus forte valeur ajoutée.

3.4. Ordre spontané

La civilisation moderne a donné à l'homme unie de pouvoirs en grande partie parce que, sans le comprendre, il a développé des méthodes pour utiliser plus la connaissance et les ressources dont on n'en a qu'un seul esprit est conscient.
– F. A. Hayek, 1978 [10

Les prix, le commerce et les compromis décentralisés seront-ils utiles? Calcul ? Cela dépend en partie de la question de savoir si les mécanismes centraux de planification seront en mesure de faire face aux systèmes informatiques de demain.

Les systèmes deviennent disponibles avec des compromis de performance qui sont Complexe cauchemardesque par rapport à celles d'une machine von Neumann en marche un programme unique. Le monde s'enrichit d'hypercubes. Machines de connexion, multi-procémiants à mémoire partagée, à usage spécial des réseaux systoliques, des super-ordinateurs de vectorisation, des simulateurs de réseau neuronaux, et Des millions d'ordinateurs personnels. De plus en plus, ils sont liés par réseaux locaux, satellites, téléphones, radio-balles, fibre optique, et les gens qui portent des disquettes. Machines dans l'ordinateur personnel la gamme de prix deviendra de puissants systèmes multiprocesseurs avec des systèmes diversifiés matériel et logiciels liés à un monde plus vaste encore plus grand diversité. Plus tard, avec le développement final de machines moléculaires capable de diriger l'assemblage moléculaire (base des nanotechnologies) 11, nous pouvons anticiper le développement d'un ordinateur de bureau. machines ayant une puissance de calcul supérieure à celle d'un milliard de Les ordinateurs centraux d'aujourd'hui 1212,13.

On pourrait essayer d'affecter les ressources de la machine aux tâches par le biais d'une opération système utilisant des règles générales fixes, mais dans les grands systèmes avec matériel et logiciel hétérogènes, cela semble condamné à la grossière inefficacité. La connaissance des arbitrages et des priorités sera répartie parmi des milliers de programmeurs, et cette connaissance sera mieux incarnée dans leurs programmes. Les ordinateurs deviennent trop complexes pour le centre la planification, avec ses goulets d'étranglement dans le calcul et l'acquisition de connaissances. Il semble que nous devions appliquer « des méthodes permettant d'utiliser plus de connaissances et les ressources dont n'importe qui n'est conscient. » Ces méthodes peuvent donner une l'ordre spontané productif grâce à une planification décentralisée l'application des connaissances locales et des ressources informatiques locales les décisions locales, guidées par des prix du marché non locaux. Au lieu de concevoir qui comportent des décisions fixes, nous devons concevoir des règles qui permettent une prise de décision souple.

Les marchés sont une forme d'« écosystème évolutionnaire » (I), et de tels systèmes peuvent être de puissants générateurs d'ordre spontané: prendre en considération l'ordre complexe et non conçu de la forêt tropicale ou de la forêt tropicale l'industrie informatique. Le recours aux mécanismes du marché peut donner des résultats ordonnés des systèmes autres que la capacité d'un individu à planifier, mettre en œuvre ou comprendre. Qui plus est, la force de formation du choix du consommateur peut faire les écosystèmes de marché informatiques servent les objectifs humains, potentiellement meilleurs que tout programmeur peuvent planifier ou comprendre. Cette augmentation de notre le pouvoir d'utiliser les connaissances et les ressources peut s'avérer essentiel, si nous sommes exploiter la puissance des grands systèmes de calcul.

3.5. Mécanismes de commandement et de prix

Un économiste pense que le système économique est coordonné par le mécanisme de prix. . . . Au sein d'une entreprise, la description ne convient pas du tout. . . . Il est clair qu'il s'agit là d'autres méthodes de coordination de la production. . . . si la production est réglementée par le prix Les mouvements... pourquoi y a-t-il une organisation ?
– R. H. Coase, 193714

Coase demande : « Pourquoi y a-t-il des entreprises ? ». Les entreprises sont des organisations économiques qui font généralement peu usage des mécanismes du marché en interne. Si le recours aux forces du marché a toujours produit une utilisation plus efficace de ressources, on pourrait s'attendre à ce que les systèmes d'individus interagissent en tant les opérateurs indépendants surpasseraient systématiquement les entreprises qui, n'existeraient pas. En réalité, cependant, les entreprises sont viables; les résultats semblent probables sur les marchés informatiques.

Les transactions sur le marché entraînent généralement des frais généraux plus élevés que le cas. transactions à l'intérieur des entreprises 1414,15. Ces transactions les coûts (sur les marchés humains et les marchés informatiques) sont associés à la publicité, la négociation, la comptabilité et les problèmes liés à la mise en place une confiance adéquate, au sein d'une entreprise, avec des consommateurs associés les producteurs n'exigent pas de publicité, les instructions n'exigent pas la négociation, le mouvement des marchandises n'exige pas de factures et de fonds le transfert, et les collègues partagent un intérêt pour leur succès commun. Entreprises réduire le coût aérien élevé des transactions sur le marché parmi de nombreux petits les entités en les regroupant en entités moins nombreuses. Non seulement est-ce que cela permet de réduire les coûts sur ce qui est maintenant des transactions internes, mais par la création d'entités plus importantes, elle augmente la taille des transactions typiques, rendre les frais généraux par transaction relativement fixes à des coûts proportionnels une charge moindre. (Pour les transactions suffisamment petites, même les plus simples la comptabilité serait trop coûteuse.)

²Coûts de l'échelle et des transactions²

Des considérations similaires sont valables entre les objets informatiques. Pour les petits suffisamment d'objets et de transactions, coût de la comptabilité et des négociations déportera tout avantage pouvant résulter d'une flexibilité, les compromis sensibles aux prix. Pour des objets suffisamment grands et des actions trans, Toutefois, ces frais généraux seront faibles en pourcentage; les avantages des mécanismes du marché peuvent alors en valoir la peine. À une échelle intermédiaire, la négociation sera trop coûteuse, mais la comptabilité permettra d'orienter la planification. Ces effets d'échelle encourageront la agrégation de petits objets simples en « entreprises » à bas niveau les règles de répartition des revenus entre leurs participants.

Le montant des seuils pour la comptabilité et les négociations variera avec situations et techniques de mise en œuvre [16. La concurrence sur le marché accordera ces seuils, en incitant à choisir l'échelle la plus efficace pour appliquer la planification centrale des méthodes de calcul.

3.6. Les objets de marché peuvent-ils être programmés?

Les objets participant aux marchés de calcul doivent initialement être beaucoup plus simple que les participants humains aux marchés humains. Est-ce qu'ils peuvent participer avec succès? Les marchés humains sont basés sur des informations intelligentes systèmes, mais cela ne montre pas l'impossibilité de baser les marchés sur objets simples - il montre simplement que l'argument pour les systèmes agoriques ne peut reposer sur l'analogie seule. Une attention explicite doit être accordée à la la question de la compétence minimale et de la complexité nécessaires à une s'opposer à une participation à un système de marché. (Ces questions constituent une autre motivation pour former des « entreprises » computationnelles et ouvrir le calcul marchés à la participation humaine.)

Marchés expérimentaux à double enchère à l'échelle du laboratoire [17) donner une indication des exigences pour participation au marché. Bien qu'impliquant des êtres humains, certains de ces les expériences ont exclu la majeure partie de l'éventail des capacités humaines: ont exclu l'utilisation du langage naturel (en fait, de toute communication canaliser plus riches que les simples offres et les acceptations) et ils ont remplacé biens avec des jetons abstraits, à l'exclusion de tout objet culturel ou historique des informations sur leur valeur. Les participants à ces marchés ont n'effectue aucun calcul sophistiqué et n'a pas eu connaissance la théorie économique ou des préférences d'autres acteurs. Mais dans ce domaine environnement épolié par l'information, ces marchés convergent rapidement aux prix considérés comme optimaux par la théorie économique. Spencer Star 1818) a réussi à gérer avec succès des marchés à double offices entre des entités logicielles qui utilisent des procédures de décision simples, et a sont parvenus à une efficacité comparable.

Une autre raison de la confiance dans l'applicabilité des mécanismes du marché au calcul est l'existence de mécanismes de marché primitifs (compalivés dans le présent document et présenté dans la section III, en vue de faire face à des problèmes logiciels reconnus tels que la collecte des ordures et Chargement du processeur. Avec des preuves de l'applicabilité du marché mécanismes à la fois à ce faible niveau et au niveau sophistiqué de la société humaine, il y a des raisons de s'attendre à ce qu'ils soient réalisables à niveaux intermédiaires de sophistication également.

3.7. Complexité et niveaux

Les grands écosystèmes informatiques liés au marché humain auront de nombreux parties, de nombreux aspects, de nombreux niveaux, et une grande complexité. Non-respect reconnaître les différences entre ces niveaux ouvrira de nombreux écueils. Le domaine de la biologie suggère comment aborder la réflexion sur ces systèmes.

Les écosystèmes biologiques obéissent au droit physique, mais pour les comprendre comme les écosystèmes nécessitent des abstractions différentes de celles utilisées en physique. L'existence de la physique, de la chimie, de la biologie cellulaire, de la physiologie et l'écologie en tant que domaines distincts indique que les concepts nécessaires pour la compréhension des systèmes biologiques sont naturellement groupées selon la l'ampleur et la complexité des phénomènes auxquels ils s'appliquent. Un tel groupement peut être appelé un niveau. Certaines questions se posent à plusieurs reprises à différents niveaux. Par exemple, les cellules, les organes, les organismes et l'urticaire dépensent tous pour maintenir une limite entre leurs environnements internes et externes, et d'amener seulement des choses sélectionnées à travers cette frontière.

Les concepts nécessaires pour comprendre les systèmes anciens ouverts peuvent également être regroupés selon différents niveaux, allant du calcul les fondations par le biais d'objets de plus en plus complexes pour les systèmes de marché en tant qu'un entiers. Comme en biologie, il y a des questions qui apparaissent sous une forme ou une autre niveaux. L'annexe I examine certaines de ces les questions, y compris la sécurité, la compatibilité, les degrés de confiance, le raisonnement, et la coordination. En examinant ces questions sur les marchés de calcul, il sera important d'éviter d'utiliser à mauvais escient les concepts d'un niveau à un niveau. niveaux très différents, c'est-à-dire, pour éviter l'équivalent d'essayer analyser l'écodynamique biologique en termes de conservation de l'élan.

Les trois sections suivantes du présent document examinent les marchés informatiques à des niveaux successivement plus élevés, en examinant d'abord les bases, puis les entités décisionnelles, et enfin les propriétés émergentes de grandes systèmes.

4. Fondations

Le calcul se produit dans un contexte qui détermine quelles sortes de les événements peuvent et ne peuvent pas se produire; ce contexte peut être considéré comme la base du reste du système. Les marchés informatiques nécessiteront les fondations qui autorisent et interdisent les bons types d'événements. À simplifier cette discussion, les suivants explorent les fondements qui prévoir une uniformité fondamentale de la nature des objets et de leurs les interactions malgré les différences de complexité et d'échelle. Dans de vrais cas systèmes, des fondations uniformes faciliteront le processus de changement les décisions dépendant de l'échelle et permettront un ensemble unifié de des outils conceptuels et logiciels couvrant différentes échelles.

Il convient toutefois de souligner que la mise en œuvre d'une situation d'il agor système n'exigera pas l'adoption d'un langage de programmation standard. Donc tant que certaines contraintes sont satisfaites aux interfaces entre objets codée par différentes parties, la langue utilisée à l'intérieur d'un objet peut être librement choisi. Les contraintes nécessaires peuvent être imposées par l'un ou l'autre la langue ou le système d'exploitation.

Les bases informatiques sont souvent exprimées sous la forme de la conception d'un langage de programmation ou d'un système d'exploitation. Langues de programmation ont principalement évolué pour fournir des abstractions pour organiser le calcul sur une petite échelle - le calcul se produisant à l'intérieur d'une seule machine et servir un seul utilisateur. Cela a malheureusement conduit de nombreux programmes lan- les concepteurs de guage pour prendre des décisions (comme pourvoir à des conditions d'action variables ou accès à des adresses de mémoire arbitraire) qui les rendent les langages impropres à l'organisation des calculs à très grande échelle. Les langues des acteurs, Argus, les langages de programmation logiques simultanés (comme FCP), et le système d'exploitation Mach sont des exemples de systèmes qui ont été conçus pour être extensibles à des grands systèmes ouverts. Ces sont traitées dans ce livre, respectivement, en [II, [III, [, [, [, , , , , , , , , , , , (V) et [VI. Tous ces des projets sont parvenus à des modèles de calcul largement similaires à partir de différentes directions, suggérant que leurs éléments communs seront de valeur générale. La présente section décrit brièvement certaines des propriétés qu'ils ont des biens de partage qui semblent importants pour la mise en œuvre de les marchés de calcul.

4.1. Information et accès

Comme indiqué à la figure 2, les systèmes pouvant supporter le calcul ouvert tout support de partage pour l'encapsulation et la communication d'informations et l'accès. La communication d'informations est fondamental pour le calcul qui implique plus qu'un seul objet. L'encapsulation de l'information implique de séparer l'état interne et implémentation à partir d'un comportement externe, empêchant un objet de l'examen ou la manipulation du contenu d'un autre.

Dans la pratique classique, l'encapsulation de l'information augmente modularité et clarté conceptuelle au cours de la conception, une caractéristique de valeur considérable. Dans les systèmes agoriques, cependant, l'encapsulation sécurisée être essentiels pendant le fonctionnement. Sans garantie contre l'examen, le vol d'informations exclusives serait omniprésent, et les récompenses pour la création d'un code de valeur et d'informations serait réduite ou détruits. Sans sécurité contre les manipulations, les objets ne pourraient pas faire confiance le comportement futur de l'autre, ou même le leur. L'encapsulation est assurée une sphère à l'intérieur de laquelle un objet peut agir avec un contrôle complet et la prévisibilité.

Comparaison des fondations

Encapsulation et communication des garanties de sécurité en matière de capacité d'accès que la capacité de communiquer avec un objet ne peut être obtenue que dans certains moyens, par exemple par la communication délibérée. Avec capacité sécurité, l'objet A ne peut avoir accès à l'objet B que par:

  • 1) être né avec lui, quand l'objet du créateur de A a déjà ce l'accès;
  • 2) le recevoir dans un message (d'un objet qui a déjà l'accès); ou
  • 3) étant le créateur de l'objet B.

La sécurité des capacités est une base commune pour la protection en fonctionnement systèmes. Il semble être un mécanisme souple et général capable de soutenir un large éventail de politiques de fourniture d'une protection en matière d'accès. En un système ouvert sans sécurité de capacité, chaque objet devrait vérifier la nature et la légitimité de chaque message qu'il a reçu, des frais généraux inacceptables sur de petits objets simples. Avec capacité sécurité, des objets simples peuvent "supprimer" que leurs messages proviennent sources légitimes, parce que leurs créateurs peuvent mettre en œuvre des politiques qui limiter l'accès aux parties de confiance.

Ensemble, les propriétés ci-dessus produisent une sécurité tout en préservant flexibilité. Malgré l'équivalence de Turing de la plupart des programmes langues, ils peuvent néanmoins différer formellement et absolument dans leur la capacité d'assurer la sécurité [25. Comment cela peut-il si l'on peut écrire un interprète pour une langue sûre dans une situation d'insécurité Un ?

Communication d'accès

La équivalence de la turing décrit les capacités d'un système, mais la sécurité repose sur les incapacités à enfreindre certaines règles. Ajout un interprète au-dessus d'un système ne peut pas soustraire les capacités de la système lui-même (même si le langage interprété ne consiste en rien les abilités, comme on peut facilement être agencé). Ainsi, ajouter des interprètes ne peut établir les inégalités nécessaires à la sécurité.

La question n'est pas de savoir « quelles fonctions peuvent être calculées? », mais « étant donné que je Je suis un objet de calcul, quelle est ma relation à un déjà environnement informatique peuplé? ». Appelons un ensemble de des objets de calcul codés dans un langage de programmation non sécurisé « objets de niveau de référence », et ceux qui existent en plus d'un Interprète de niveau de référence «objets interprétés». Si l'interprète met en œuvre un langage sécurisé, puis les objets interprétés sont protégés les uns des autres. Les objets de niveau de référence, cependant, peuvent tout simplement ignorer interprète et dépromotion des objets interprétés.

4.2. Propriété et commerce

Comme les systèmes logiciels ont évolué vers une plus grande modularité, l'encapsulation de l'information et l'accès sont devenus plus propres, uniformes, et fiable. Comme cela a été discuté, l'encapsulation dans le logiciel sert la même fonction cruciale que les droits de propriété dans les affaires de l'homme: établit des domaines protégés dans lesquels les entités peuvent planifier l'utilisation leurs ressources exemptes d'interférences de l'impossible extérieur influences. Cela permet aux entités de planifier et d'agir en dépit de ce qui est limité, caractère local de la plupart des connaissances; il permet ainsi une utilisation plus efficace diviser la connaissance, aidant à la division du travail. La valeur de la protection les domaines et les connaissances locales ont jusqu'à présent été la seule motivation pour donner des modules logiciels « droits de propriété » par encapsulation.

Dans les systèmes économiques, les droits de propriété permettent également aux entités économiques de accumuler et contrôler les résultats de leurs efforts, en fournissant la base pour un système incitatif ayant les propriétés évolutives souhaitables Délimité dans la section I. Dans les systèmes agoriques, encapsulation commenceront également à remplir cette fonction.

Les systèmes agoriques nécessitent également l'encapsulation et la communication de des ressources de calcul, telles qu'un bloc de mémoire ou un temps de traitement tranche. Ceci empêche l'évolution des objets parasites (I) Limite les coûts de l'inefficacité à les objets inefficaces et leurs clients, et les implémentations) met des informations sur les performances à disposition localement.

L'encapsulation et la communication des ressources correspondent à la propriété et le transfert volontaire, la base du commerce.

Une construction familière de programmation de systèmes qui viole l'encapsulation de Les ressources sont le programmateur de la rondeur. Dans un tel planificateur, le montant de la puissance de traitement allouée à un processus dépend simplement du nombre d'autres processus. La puissance de traitement allouée à un processus donné seront réduits chaque fois qu'un autre processus décide d'engendrer encore plus processus. Sous un ordonnanceur à roules, le processeur est traité comme un les biens communs; compte tenu de la diversité des intérêts, la tragédie habituelle doit être On s'attend à ce que l'on attend [26.

L’article d’Artsy sur «La conception de systèmes informatiques entièrement ouverts» (FOCS) 22) Examen d'une approche pour un système d'exploitation conception ayant les propriétés souhaitables spécifiées ci-dessus. Utilisation d’Artsy le terme "systèmes informatiques entièrement ouverts" correspond à ce qui serait ici être "répartition extrême du mécanisme et de la politique", où un mécanisme est le soutien d'un transfert de propriété protégé et vérification de la propriété sur l'accès. Toutes les autres ressources allouées sont puis fourni en tant que politique au niveau des utilisateurs. Ainsi, les programmateurs et la mémoire les allocators sont complètement en dehors du noyau du système d'exploitation sécurisé et fonctionner par l'intermédiaire d'un modèle de propriété et de commerce. On peut, par exemple, posséder et les tranches temporelles commerciales d'un processeur particulier. La programmation est effectuée à l'adresse suivante: le niveau d'utilisateur en échangeant ces produits.

En partant de la propriété directe des ressources de calcul physiques, plus Des modèles abstraits de propriété peuvent être construits. Par exemple, une date limite programmatrice peut être considérée comme suit: une application en temps réel (c'est-à-dire une application qui doit être satisfaite en temps réel) dans les délais), il devrait être connu à l'avance de savoir combien de temps il faudra et quelle heure faut-il faire? Lorsqu'un processus souhaite s'assurer qu'il être capable de programmer un ensemble de telles tâches, il peut acheter "abstrait le temps à venir tranches» - pas des tranches de temps spécifiques, mais des droits sur une tranche de temps d'une certaine durée dans un certain délai. Étant donné que cela donne le vendeur de temps tranche une plus grande flexibilité vis-à-vis des autres clients, ces tranches de temps devraient coûter moins cher que les tranches concrètes. C'est comme un marché à terme, mais avec garantie de disponibilité - un vendeur honnête de les tranches de temps ne s'obligeront pas à vendre des tranches de temps qu'il n'est peut-être pas capable d'obtenir. (Voir également le [27..

4.3. Entitéoriété et modularité des performances

L'activité d'un programme en cours d'exécution peut être analysée en termes de compétence et performance. La compétence fait référence à ce qu'un programme peut disposer de ressources suffisantes, mais sans examen explicite de ces ressources. La compétence comprend les questions de sécurité - ce que le programme ne le fera pas, et la vienalité - si le programme finira par faire quoi il est censé, ou qu'il vivra infiniment boucler ou dans l'impasse. La performance fait référence aux ressources que le programme utilisera, l'efficacité avec lesquels il les utilisera, et le temps qu'il faudra pour produire les résultats - précisément, les questions ignorées par la compétence. Ces deux questions ont fait l'objet d'une analyse formelle: les aspects de compétence d'une le langage de programmation peut être formalisé en tant que langage de programmation sémantique et utilisé pour analyser les propriétés de sécurité au moyen de preuves partielles les propriétés de correction et de vie via des preuves de terminaison. Le les aspects de performance d'un programme peuvent être formellement analysés par complexité théorie et preuves du temps de réponse (pour la programmation en temps réel).

Modularité des marchés et des performances

La formalisation à elle seule, cependant, est insuffisante pour faire face à ces Problèmes de grands programmes - un programme complexe non-modulaire dans un programme formalisé un langage résistera souvent à une validation formelle (ou informelle) de plusieurs propriétés importantes; la modularité est nécessaire pour rendre l'analyse tractable. La modulation procède par séparation de l'interface de l'implémentation, permettre de se préoccuper de ce que fait un module d'être quelque peu découplé Préoccupations quant à sa façon de le faire. Programmation orientées vers l'objet et abstrait les types de données aident à la modularisation des questions de compétence, avec message des protocoles servant d'interface abstraite pour les effets de compétence [28. De même, les marchés de calcul contribueront modularisation des questions de performance, les prix servant de résumé l'interface pour les coûts des ressources.

4.4. Monnaie

Pour qu'un large marché émerge de ces fondations, un système doit prévoir la propriété et le commerce non seulement de calcul de base des ressources, mais aussi des ressources virtuelles, définies par l'utilisateur. Ces ressources peuvent servir de jetons pour la mise en place d'un système monétaire. Clé publique les systèmes de communication [29) permettent la mise en œuvre de un système bancaire sécurisé; au sein d'un sous-système matériel mutuellement fiable, la sécurité basée sur les capacités et les identificateurs uniques infalsifiables sont suffisant pour mettre en place un système de clés publiques sans recourir à chiffrement [25.

Les mécanismes comptables ont été utilisés dans une certaine mesure dans le domaine des logiciels. Ancienne les systèmes de partage du temps sont l'un des modèles les plus familiers - un fait qui peuvent susciter de graves préoccupations quant à l'opportunité de systèmes agoriques. Mais l'utilisation d'un système agorique ne signifierait pas un retour aux mauvais vieux jours de mendicité pour une subvention de centaines de dollars de temps et de stockage d'ordinateurs d'éditer un document de taille moyenne tard dans la nuit, ou d'effectuer certains Calcul maintenant bon marché. Le coût des ordinateurs a diminué. Elle le fera. continuent de chuter et les ordinateurs personnels continueront de se répandre. A côté à partir des frais généraux (qui peuvent être réduits à néant), compte tenu des coûts de le calcul ne rendra pas le calcul plus coûteux. Faire de l'homme Les êtres payent pour le temps informatique n'est pas l'objectif des marchés informatiques.

Dans les systèmes agoriques, les objets se chargeront les uns les autres et la machine charger les objets. Compte tenu des coûts de communication suffisamment faibles et des conditions de droit une sorte de demande, un ordinateur personnel pourrait gagner de l'argent pour son propriétaire en servir les autres, au lieu de rester inactif. Le propriétaire d'une machine n'a pas besoin de le payer pour l'utiliser, puisque les charges internes et les recettes tout l'équilibre. Dans une ordinateur autonome, la monnaie circulera simplement, encourant un frais de calcul mais fournissant des informations comptables internes qui peuvent guider les décisions internes.

À l'intérieur d'une machine, on pourrait avoir les bases établies par un fonctionnaire système monétaire. Aucune solution sûre n'a encore été trouvée pour le faire entre les machines mutuellement méfiantes sur un réseau sans compter sur Des machines de tiers faisant l'objet de diverses entreprises de confiance. En accord avec l'objectif d'uniformité, ces banques sont ici proposées comme Modèle de virement de devises 25,30. Ces banques peuvent les comptes de deux parties; lorsque la partie A transfère de l'argent à la partie; B, la banque peut vérifier pour B que l'argent a été transféré. (Le Le coût de la vérification incite A et B à établir suffisamment de confiance pour rendre la vérification fréquente inutile.) Dans ce modèle, il est inutile et peut-être impossible d'établir une seule monnaie en tant que norme. Il y aura plutôt une variété de monnaies locales avec taux de change entre eux; on a fait valoir que cela se traduirait par une plus grande stabilité monétaire, et donc sur un marché plus efficace, que l'une fondée sur une monnaie unique [31.

4.5. Problèmes ouverts

Au niveau fondamental, de nombreuses questions restent en suspens. Les acteurs et le FCP semblent être des langages de programmation ouverts et propres, mais ils n'ont pas un mécanisme évident pour faire face à la défaillance de la machine. Argus est un langue open-systèmes capables de traiter ce problème, mais uniquement par la fourniture directe de transactions avortables distribuées en tant que base mécanisme. Bien que ces transactions fournissent beaucoup d'effet de levier, elles sont tout à fait complexe. Une ligne d'investigation prometteuse est la conception d'un langage avoir la simplicité des Acteurs ou du FCP, mais qui prévoit des mécanismes pour le traitement des défaillances permettant de soutenir la politique au niveau des utilisateurs Opérations de type Argus. Encore plus satisfaisant qu'une telle conception ne le serait démontrer que les acteurs ou le FCP disposent déjà d'un mécanisme suffisant.

Une comptabilité des ressources adéquate est plus centrale pour les systèmes agoriques. Il y a pas encore de langage ouvert qui assure la propriété et le commerce des ressources de base informatiques tout en préservant l'uniformité sémantique et soutenir l'émergence de la tarification et des prix. Il semble que cela a ont été réalisés dans le domaine de la conception des systèmes d'exploitation 22, mais malheureusement d'une manière qui n'est pas encore se prêter à des systèmes distribués. Ce serait excitant d'appliquer Artsy's travaux sur des systèmes d'exploitation orientés à l'air libre comme Mach [IV

5. Agents et stratégies

Lorsqu'un problème doit être résolu fréquemment, mais qu'aucune solution ne soit unique dans toutes les situations, il est souhaitable d'autoriser l'essai et l'utilisation de nombreuses solutions. Pour permettre cette liberté, on cherche à séparer mécanisme et politique, conception de fondations qui soutiennent un large éventail de par le biais de mécanismes à des fins générales.

Mécanismes fédéraux de l'appropriation et du commerce de l'information les ressources de calcul permettent de déléguer le choix de la politique à ces objets individuels; ces objets peuvent à leur tour déléguer leurs choix pour d'autres objets, appelés agents. Même les politiques en faveur d'une telle importance des processus en tant qu'ordonnancement du processeur et allocation de mémoire peuvent l'être déléguée. On fait valoir ce qui suit que les agents de niveau supérieur peuvent réaliser la sélection automatique adaptative de la structure des données, le guide des techniques sophistiquées de transformation de code, assurer la concurrence parmi les agents d'affaires, et tenir à jour des informations sur la réputation à titre indicatif la concurrence.

5.1. Axé sur les ressources et stratégies initiales de marché

Problèmes de programmation des systèmes tels que la collecte des ordures et le processeur l'ordonnancement a été traditionnellement abordé dans le calcul fondations, le rôle d'architecte dans le rôle d'omniscientsseur central planificateur. Dans cette approche, l'architecte impose une seule, à l'échelle du système. solution basée sur des statistiques globales globales, ce qui exclut le choix local. Toutefois, dans le cadre de l'approche du marché, ces problèmes peuvent être refondus en termes de la négociation locale entre objets. Les solutions dans ce cadre également fournir aux objets des informations sur les prix, leur permettant de rendre rentables utilisation de la flexibilité qui en résulte.

Cela permet aux programmeurs de fournir des ressources spécialisées aux objets. les stratégies d'allocation, mais il n'est pas nécessaire de forcer les programmeurs à s'occuper ceci. Les objets peuvent déléguer ces questions stratégiques aux agents des entreprises, et un environnement de programmation peut fournir des agents par défaut lorsque Le programmeur ne précise pas le contraire.

Le document d'accompagnement «Inciécipatif de l'ingénierie pour les ressources informatiques Gestion » (III) décrit et analyse la première les stratégies de marché qui, si elles sont suivies d'un ensemble d'agents commerciaux, obtenir des algorithmes distribués pour l'attribution du temps de processeur, espace de mémoire, et canaux de communication. Stratégies de marché initiales (qu'ils soient ou d'autres) joueront un rôle clé dans l'établissement d'acridors systèmes: du point de vue traditionnel de la programmation, ils fourniront les politiques initiales pour la collecte des ordures et la planification du processeur; à partir d'un en perspective de marché, ils contribueront à fournir des prix de ressources initiaux et donc un environnement dans lequel des entités plus sophistiquées peuvent commencer à fonctionner. Ainsi, ils contribueront à combler le fossé entre la pratique actuelle. et les marchés de calcul. Au fur et à mesure de l'évolution des marchés, l'échafaudage fourni par des stratégies de marché initiales peuvent être largement ou entièrement remplacées par d'autres structures.

Les stratégies initiales de planification des processeurs sont fondées sur une enchère. dans laquelle les offres peuvent être automatiquement intensifiées pour s'assurer qu'elles sont finalement acceptés. Les stratégies initiales d'allocation de la mémoire et la collecte des ordures est basée sur le paiement du loyer, les objets payant les droits d'approvisionnement pour les objets qu'ils souhaitent conserver en mémoire; objets qui sont les pertes de loyer non désirées et donc dans l'incapacité de payer le loyer sont finalement expulsées, la distribution de leur espace mémoire. Ces approches soulèvent diverses formes de (y compris la menace d'une instabilité stratégique découlant de les problèmes de biens publics) qui sont abordés dans notre document d'accompagnement. Ensemble, ces stratégies fournissent une preuve de concept (ou au moins preuves solides de la notion de répartition décentralisée des ressources de calcul.

Les stratégies initiales de marché fourniront un système programmable qui génère des informations sur les prix, permettant de faire un large éventail de choix pour des raisons économiques. Par exemple, les prix du processeur et de la mémoire peuvent guider les décisions concernant l'utilisation de la mémoire pour mettre en cache des résultats recalculables. Compte tenu d'une règle d'estimation du taux futur de demandes de résultat, l'un devrait mettre en cache le résultat chaque fois que le coût de stockage pour le résultat est inférieur au taux de demandes multiplié par le coût de la recalcul résultat (négligeage d'une correction pour les frais généraux de mise en cache et les décisions de mise en cache). Au fur et à mesure que la demande de mémoire dans un système augmente, la mémoire le prix augmentera, et ces règles devraient libérer les parties les moins précieuses de caches. Si les prix de transformation augmentent, les caches devraient croître. Ainsi, les prix favoriser les compromis par le biais du commerce.

5.2. Décisions relatives à la localisation des entreprises

L'information sur les prix peut guider toute une série d'autres choix. Nombre d'entre eux ressembler aux décisions relatives à la localisation des entreprises.

La mémoire principale « de base » est une ressource à haute performance en pénurie. Disque est une ressource moins performante en matière d'approvisionnement plus abondante. Dans un agoric système, la mémoire de base sera généralement un district à loyer élevé (business), tandis que le disque sera généralement un district à loyer (résidentiel) à faible revenu. Se déplacer de l'un à l'autre prendra du temps et coûtera de l'argent. Un objet qui restent au cœur paiera des loyers plus élevés, mais peuvent fournir un service plus rapide. Dans la mesure où cela est de valeur, l'objet peut facturer plus; si augmentation des revenus plus que compenser le loyer le plus élevé, l'objet le profit en restant dans le noyau. Traitement du choix du support de stockage comme le problème de la localisation des entreprises tient compte de considérations telles que valeur relative du service rapide - que la mémoire virtuelle traditionnelle les algorithmes n'expriment pas.

Les petits objets seraient incités à «piloter» en format de page disque «véhicules». Mais compte tenu des questions décrites dans la section 3.5, un objet typique achète des ressources sur la Le marché peut occuper de nombreuses pages. Au lieu de décider s'il devrait être complètement dans ou hors du noyau, un tel objet pourrait décider combien de ses pages devraient faire partie d'un ensemble de travail central, peut-être sur une Algorithme traditionnel (32) pour sélectionner dynamiquement les pages centrales.

La variété des types de mémoire suggère également un besoin de plus de flexibilité que l'approche traditionnelle à deux niveaux prévoit. Les nombreux types de la mémoire diffère à bien des égards: prendre en compte le cache rapide de la RAM, en écriture une fois optique disque, et bande archivée dans plusieurs voûtes. Les systèmes à mémoire diffèrent avec en ce qui concerne:

  • Latence
  • Coût de stockage
  • Coûts d'accès
  • Fiabilité
  • Taux de transfert
  • Structure de la localité
  • Prédicabilité du temps d'accès
  • Sécurité

Les arbitrages évolueront à mesure que la technologie évoluera. Etre portable et viable au-delà de ces changements, les programmes doivent être capables de s'adapter.

On a beaucoup écrit sur la nécessité de migrer des objets dans une système afin d'améliorer la localité de référence (30,33,34) Encore une fois, cela ressemble au problème du choix d'un lieu d'implantation. Les machines reliées par des réseaux ressemblent à des villes reliées par des autoroutes. Différents endroits ont des niveaux de demande différents, différentes entreprises les coûts et les coûts différents des voyages et des communications. Divers les approches traditionnelles correspondent à:

  • rester en place et utiliser le téléphone (comme dans Mach [VI) et le noyau V [35)),
  • commutation vers l'endroit où se trouve la demande momentanée (comme dans Apollo [36) ),
  • ne se déplace que lorsqu'il n'y a pas de clients locaux (comme dans l'algorithme de Bishop [37, ),
  • la coordination de plusieurs bureaux (comme dans le secteur de la vigne [38 et dans [39));
  • et en déplaçant là où les coûts de main-d'œuvre sont plus faibles (équilibre de charge, comme dans [40.

Si l'une quelconque de ces méthodes se limitait à l'une de ces méthodes, les sociétés humaines souffriraient terrible inefficien-cies. On attend la même chose pour les grandes, les plus diverses systèmes logiciels. Si les mécanismes d'un système soutiennent une série de politiques, différents objets peuvent sélectionner différentes approches.

La notion d'emplacement dans un espace est encore rare dans l'orientation objet programmation (pour une exception, voir [41) . . . . . . . . . . . . Tous la mémoire dans un ordinateur von Neumann idéal est effectivement équidistante, et de nombreux ordinateurs réels se rapprochent de cet idéal, mais dans un système largement distribué système, les distances différentes sont d'une importance réelle. Lorsque les objets sont compte tenu des coûts de communication et de navette, ils gagnent une notion utile de distance pour prendre des décisions économiques.

5.3. Agents commerciaux

Sur un marché contenant des objets sophistiqués, potentiellement malveillants, comment Les objets simples peuvent-ils espérer négocier, rivaliser et survivre ? Une réponse serait de mettre à l'abri des objets simples et polyvalents à l'intérieur de grands objets, des objets sophistiqués, construisant le second hors du premier. C'est ce que Le modèle, cependant, empêcherait de tourner de petits objets en vrac comme les prestataires de services sur le marché libre. D'autres moyens sont nécessaires pour donner aux petits objets la sophistication du marché dont ils ont besoin.

De même que la délégation de tâches à d'autres objets peut permettre une petite, simple s'opposer à offrir des services sophistiqués, de sorte que la délégation puisse lui permettre de s'engager dans un comportement sophistiqué du marché. Dans la terminologie de ce travail, un l'objet peut déléguer des actions de compétence-dominausse à un subcontractorsous-traitant; correspond à la pratique normale de la décomposition hiérarchique, qui est née du sous-programme. Un objet peut également déléguer actions de domaine de performance à l'égard d'un agent ; il semble probable qu'il s'agit d'une Pratique normale dans les systèmes agoriques. Des objets simples peuvent alors faire leur dans un monde complexe en naît avec des relations de service des agents sophistiqués (qui peuvent eux-mêmes être composés de simples objets nés avec. . . .). Dans un premier temps, les décisions humaines établiront ces relations; plus tard, des agents spécialisés dans les agents peuvent les établir dans le cadre du processus de création de nouveaux objets économiques. Les stratégies initiales de marché mentionnées à la section 5.1 pourraient être fournis par des agents simples.

On pourrait objecter qu'un objet simple et sa collection d'agents constituent ensemble un objet complexe. Mais ces objets, bien que complexes dans le domaine de la performance, rester extrêmement simple dans la compétence domaine. En outre, les grands agents n'ont pas à supporter un simple objet avec coûts énormes; en général, un grand nombre d'objets partageraient les agents et leurs frais généraux. L'approche object-and-agent peut ainsi permettre les entités de simples compétences pour soutenir la concurrence sur le marché libre.

=5.3.1. Agents de type de données=

Dans la programmation orientée objet, on peut fournir plusieurs implémentations d'un type de données abstraites, tous fournissant le même service par l'intermédiaire du le même protocole, mais offrant des compromis de performance différents [28. Un exemple est le tableau de consultation, qui peut être implémenté sous la forme d'un tableau, d'une liste liée, d'une table de hachage, d'un arbre B, d'une associative une mémoire, ou comme l'un de plusieurs autres dispositifs ou structures de données. Dans un système orienté objet, le code qui utilise un tel type de données abstraites est elle-même généralement abstraite, étant indépendant de la manière dont le type de données est mise en œuvre, ce qui offre une flexibilité précieuse. En revanche, le code qui demande qu'une telle donnée abstraite soit généralement moins abstrait, se référant directement à une classe qui fournit un mise en œuvre de ce type. Le code résultant incarne des décisions concernant les compromis de mise en œuvre dans un contexte relativement dispersé et gelé formulaire.

Sur un marché, les agents peuvent dégeler ces décisions: demandes d'instanciation peut être envoyé à un agent de type de données, qui fournit alors un dispositif approprié sous-traitant. Sur les marchés humains, une personne à la recherche d'une maison peut consulter un agent immobilier. L'agent immobilier se spécialise dans la connaissance de ce que c'est disponibles, quels compromis sont importants et ce qu'il faut demander aux clients concernant ces arbitrages. De même, un agent de table de recherche pourrait savoir quelles sont les applications des tableaux de recherche disponibles, quels compromis ils incarner, et (implicitement, par son protocole) ce qui peut demander aux clients concernant ces arbitrages (par exemple, une demande pourrait indiquer: «Je vais sont souvent indexés aléatoirement dans le tableau'). L'agent pourrait également «demander questions » en fournissant un tableau de recherche d'essai qui recueille l'usage statistiques: une fois qu'un modèle devient clair, l'agent peut de manière transparente passer à une mise en œuvre plus appropriée. À long terme, sporadique l'échantillonnage des modes d'utilisation peut fournir un mécanisme à bas flux pour alerter l'agent des changements nécessaires dans la mise en œuvre.

Un agent peut faire plus. Par exemple, le prix relatif de la mémoire et le temps de traitement peut varier avec l'heure de la journée ou avec l'état de technologie; en fonction du coût des différentes implémentations et le coût du changement parmi eux, un changement peut être rentable. De même, le l'utilisateur de table peut souhaiter des réponses plus rapides; là encore, un changement peut être profitables.

Si une nouvelle mise en œuvre de table de consultation est supérieure pour certains utilisations, il pourrait être annoncé (par son agent publicitaire) agents de table de recherche. La « publicité » pourrait inclure le paiement par ces agents de tester ses performances dans différents modes d'utilisation, en leur permettant de déterminer lequel de leurs clients pourrait bénéficier de son transfert. Le Un nouveau tableau serait bientôt utilisé par des programmes codés sans la connaissance de celui-ci, et qui a commencé à fonctionner avant sa création.

Les agents non apparentés peuvent interagir de manière synergique. Considérons le cas d'un table de recherche avec des ports de lecture et d'écriture distincts et des utilisateurs distribués. Tant qu'il y a des écrivains, cette table de recherche choisit d'exister uniquement une machine (afin de préserver la sémantique sérialisable sans complexité des mises à jour distribuées). Cette mise en œuvre impose retards importants et coûts de communication pour les lecteurs: si tous objets a abandonné l'accès à son port d'écriture, la table de recherche pourrait transmettre des copies statiques de lui-même à tous les lecteurs, en réduisant ces coûts. Le tableau peut représenter ce coût en facturant un niveau artificiellement élevé la redevance de retenue pour le port d'écriture, ce qui incite les utilisateurs à abandonner cette obligation et permettre un passage à une mise en œuvre moins coûteuse. C'est ce que illustre comment les décisions économiques locales peuvent encourager les compromis de performance portant sur des aspects aussi distincts du système que collecte des ordures ménagères, trafic de réseau et représentation des données structures.

²Tableaux de recherche²

Agent de la table de recherche

Agrément des agents d'évaluation partielle suffisamment puissants (42), un agent de type de données pourrait proposer d'étendre un objet avec un nouveau protocole. Par exemple, l'utilisateur d'une table de recherche pourraient fréquemment rechercher les valeurs des N premières entrées suivant un une clé particulière. plutôt que de le faire en exécutant une procédure utilisant protocole existant, il pourrait proposer de payer pour l'évaluation partielle procédure en ce qui concerne la table de recherche, et ajouter une consultation-next-N demande au protocole de la table. Cela permettrait généralement d'assurer l'entretien. ces demandes sont plus efficaces; une partie des économies qui en résulteraient pourrait versé sous forme de dividendes à l'objet qui a investi dans l'évaluation partielle.

=5.3.2. Responsables=

Différents agents du même type auront une réputation différente et les structures de tarification, et elles seront en concurrence les unes avec les autres. Un objet doit choisir lequel de ces agents utiliser. De même qu'un objet peut utiliser un agent de table de consultation pour décider quelle table de recherche utiliser, donc un objet peut employer un agent-sélection pour décider quel agent l'emploi. Les agents de sélection des agents sont également en concurrence les uns avec les autres, Mais cela ne doit pas conduire à une régression infinie: par exemple, un objet peut être né avec un agent fixe-sélection d'agent. Le système dans son ensemble reste flexible, puisque des objets différents (ou des versions d'un seul objet) utilisera différents agents de sélection d'agents. Ceux qui utilisent des médicaments pauvres aura tendance à être éliminé par la concurrence.

Une généralisation de la notion d'agent-agent de sélection est celle d'un Responsable. Outre les fonctions déjà décrites, un gestionnaire peut fixer les prix, sélectionner les sous-traitants et négocier les contrats. Pour sélectionner les bons agents et les sous-traitants, les gestionnaires et les agents devront juger la réputation.

=5.3.3 Réputations=

Un système de réputation peut être qualifié de positif s'il est fondé sur la recherche objets susceptibles de fournir un bon service, et négatifs s'ils sont basés d'éviter ceux qui sont censés fournir un mauvais service. Une réputation négative les systèmes échouent si des pseudonymes efficaces sont disponibles à bon marché; Les systèmes de réputation, toutefois, exigent seulement qu'une entité ne puisse prétendre l'identité d'une autre, condition remplie par les propriétés identitaires de acteurs (44,43) et la clé publique systèmes (2929) En conséquence, les marchés de calcul sont censés s'appuyer sur des systèmes de réputation positifs.

Il semblerait que de nouveaux objets ne puissent pas acquérir une réputation positive (« Désolé, vous ne pouvez pas obtenir le poste à moins de le montrer que vous l'avez déjà fait auparavant. »). mais ils n'ont pas besoin d'avoir donné un bon service pour faire en sorte que l'on s'attende à de bonnes service. Par exemple, un nouvel objet peut donner des raisons de s'attendre à de bonnes choses service - établir une réputation positive en affichant une trésorerie un lien garantissant de bonnes performances. (Cela exige, bien sûr, que les deux parties au contrat font confiance à certains tiers pour détenir la caution et le jugement.) Malgré l'idée que les entités logicielles ne peuvent pas faire engagements [44), contrats avec les contrats exécutoires les clauses de sanction leur permettent de le faire.

La demande d'informations sur la réputation fournira un marché pour services de réputation, analogues aux agences de notation de crédit, investissement bulletins d'information, Underwriters Laboratories, The Better Business Bureau, et Rapports des consommateurs. Lorsque l'exactitude et la qualité du service peuvent être jugé, il semble qu'un service de réputation efficace pourrait fonctionner comme ci-après. Un serveur de réputation approche un fournisseur de services, offrant de l'argent pour le service. (Le serveur finance ces achats par la vente des informations sur les résultats.) L'agent de réputation est incité à semble être un client régulier (pour obtenir un échantillon précis), et régulier les clients sont incités à s'agir d'agents de réputation (à obtenir un service de qualité). Un critique de restaurant a déclaré "Si quelqu'un prétend être moi, il ne l'est pas." 4545. Compte tenu des identités inopres, le mieux que l'un ou l'autre puisse faire est de maintenir l'anonymat. Les prestataires de services sont alors incités à fournir un bon service, car leur réputation pourrait être en jeu à à tout moment. Ce scénario généralise les tests des services de réputation eux-mêmes.

=5.3.4. Compilation=

Les arbitrages dans la compilation peuvent souvent être exprimés en termes économiques. Pour par exemple, le meilleur choix dans un compromis dans l'espace-temps dépendra les coûts de traitement et de mémoire, et sur la valeur d'un résultat rapide. Un autre le compromis est entre le calcul investi dans la transformation du code par rapport à qui a passé à l'exécution du code; c'est particulièrement important dans guider la tâche souvent gourmande en calcul de l'évaluation partielle.

L'investissement dans la transformation de code est un peu comme d'autres investissements dans une l'économie: il implique des estimations de la demande future, et ne peut donc pas être réalisé par un algorithme simple et général. Dans un marché informatique, les spéculateurs de compilation peuvent estimer la demande, investir dans le programme transformations, et partez dans les économies résultantes. Certains dépenseront trop et perdre des capitaux d'investissement; d'autres dépenseront de manière mieux adaptée. Dans l'ensemble, les ressources iront à l'intention des investisseurs selon des règles qui sont bien adapté aux schémas d'utilisation dans le système, ce qui alloue des ressources plus efficaces. C'est un exemple de la subtilité de adaptation évolutive: nulle part où ces modèles doivent être explicitement représenté.

La pratique actuelle en matière de programmation sacrifie généralement une mesure de simplicité structurelle et modularité par souci d'efficacité. Quelques Technologies de compilation récentes (42,46) peut rendre radical, transformations non locales qui changent non seulement les performances, mais aussi une mesure de complexité. L'utilisation de cette technologie pourrait libérer les programmeurs se concentrer sur l'abstraction et la sémantique, permettant la structure de la code pour exprimer plus directement la structure du problème. Cela peut réduire la tension entre modularité et efficacité.

Comme nous le dirons plus tard, les marchés de calcul encourageront la création de des modules réutilisables et de haute qualité adaptés à la composition en plus grands objets. Les objets composites résultants auront généralement des composants. le versement de dividendes à différents investisseurs, en imposant des obligations internes au-dessus de la comptabilité. Là encore, il y a une tension avec efficacité, et à nouveau, il peut être réduit au moyen de la technologie de compilation. Beaucoup compilation implique (invisiblement) le «vio-lant» interne les limites comprenant des composants bien séparés en un complexe, un morceau de code non modulaire. Dans un système agorique, un agent de compilation peut faire de même, tout en analysant et en compilant les frais généraux de la comptabilité d'exécution.

Un compilateur préféré Pareto est un compilateur qui effectue cette transformation. afin de garantir que certains éléments seront mieux lotis et qu'aucun être encore plus mal loti. Cela peut être réalisé même si la division qui en résulte revenu ne correspond qu'à une approximation des proportions initiales, puisque le total L'économie résultant de l'établissement se traduira par une augmentation du montant total des recettes fracture. L'attente de résultats préférés de Pareto est suffisante pour induire s'oppose à la compilation; étant donné que les résultats multiples peuvent être atteints Il reste toutefois de la condition de la nécessité de la négociation.

5.4. Le scandale de l'intempérie

Les politiques actuelles d'allocation des ressources laissent beaucoup à désirer. Un signe Il s'agit de la plupart des ressources informatiques, y compris les CPU, les têtes de disque, les réseaux locaux, et beaucoup plus inactives la plupart du temps. Mais tels les ressources ont des utilisations évidentes, y compris l'amélioration de leur propre efficacité; au cours d'une utilisation ultérieure. Par exemple, les programmes fortement utilisés peuvent être recompilés. par l'optimisation de compilateurs ou d'évaluateurs partiels; les pages sur disque peuvent être réarrangés pour conserver des fichiers contigus; les objets peuvent être réarrangés selon à la structure de référencement pour minimiser la radiomessagerie [47, et ainsi de suite. Dans un marché informatique, un ensemble de ressources inutilisées ont généralement un prix d'utilisation nul ou proche de zéro, ne correspondant que du le coût de toute consommation d'énergie ou d'entretien qui pourrait être économisé par une véritable inclinaison ou arrêt complet. Presque n'importe quelle utilisation, aussi insignifiante soit-elle, serait alors rentable. Dans la pratique, la contention à utiliser ferait l'objet d'une offre prix jusqu'à ce qu'ils reflètent la valeur marginale d'utilisation 55. Le temps de blessure est un signe flagrant de gaspillage les politiques d'allocation des ressources; on soupçonne qu'il ne s'agit que de la pointe d'un très grand iceberg.

Terry Stanley (48) a suggéré une technique appelée « simulation post-facto » en tant qu'utilisation du temps inactif (ou peu coûteux). Il permet à un ensemble d'objets d'éviter les frais généraux de grains fins. la comptabilité tout en obtenant beaucoup de ses avantages. Tout en faisant un vrai travail, ils ne rendent pas compte et ne tentent pas de s'adapter au prix intérieur l'information; au lieu de cela, ils se contentent de recueillir des statistiques (à faible teneur en frais généraux) à caractériser le calcul. Par la suite, lorsque le traitement est bon marché et les exigences de temps de réponse sont absentes (c'est-à-dire à la date limite), elles simulent le Calcul (basé sur les statistiques), mais avec une comptabilité fine excité. Pour simuler la situation de jour, ils ne facturent pas les frais généraux de cette comptabilité, et procéder par « jour » simulé prix. Les décisions qui en résultent (concernant le choix des structures de données, l'utilisation d'une évaluation partielle, etc.) devrait améliorer les performances pendant "jours futurs". Ceci est analogue à donner votre meilleure réponse en temps réel au cours d'une réunion, puis l'examiner lentement par la suite: Ce que vous auriez dû faire, vous améliorez vos performances futures.

6. Systèmes agoriques dans les grandes

En décrivant l'idée de calcul basé sur le marché et une partie de son Le présent document s'est implicitement concentré sur des systèmes de logiciels exécutant des fonctions relativement classiques. Le À l'issue de l'examen de deux questions plus larges: comment le calcul fondé sur le marché pourrait interagir avec les marchés existants des logiciels, et comment il pourrait être pertinents pour l'objectif de l'intelligence artificielle.

6.1. Marchés de la distribution de logiciels

Un système ouvert agorique fournirait un monde informatique dans lequel des objets simples peuvent vendre des services et percevoir des redevances pour leurs créateurs. Cela permettra d'offrir des incitations différentes de celles de l'actuel monde, conduisant à des différences qualitatives sur les marchés des logiciels.

6.1.1 Marchés à la charge par utilisation
Peut-être que le problème central auquel nous sommes confrontés dans toute l'informatique est comment Nous allons arriver à la situation où nous nous appuyons sur la base des travaux de D'autres plutôt que de refaire une telle partie d'une manière trivialement différente.
– R. W. Hamming, 1968 (49)

Considérons le marché actuel de la distribution de logiciels. Producteurs gagnent généralement de l'argent en facturant des copies de leur logiciel (et des disques d'aluminium) avec une copie illégale extensive). Les utilisateurs occasionnels doivent payer autant pour les logiciels en tant qu'utilisateurs intenses. Le prix des logiciels pour les utilisateurs intenses est suffisamment coûteux pour décourager l'achat par des utilisateurs occasionnels - même si leurs utilisations leur seraient d'une grande utilité. En outre, un achat élevé les prix découragent de nombreux utilisateurs potentiellement fréquents de tenter logiciel en premier lieu. (Simplement baisser les prix ne serait pas plus élevé efficace si cela réduit les recettes pour les vendeurs: avec une baisse escomptée les recettes, moins de logiciels seraient rédigés, y compris des logiciels pour lesquels il y a une demande réelle.)

Maintenant, envisagez d'essayer de construire et de vendre un programme simple qui utilise cinq des programmes sophistiqués en tant que composants. Quelqu'un pourrait l'acheter juste pour gagner l'accès à l'un de ses composants. L'ampleur d'une redevance de licence devrait donc être élevée les propriétaires de ces composants devraient facturer le constructeur de cette Un programme simple ? Assez pour que le nouveau programme coûte au moins la somme de le coût des programmes à cinq composantes. Des dispositions spéciales pourraient être dans des circonstances particulières, mais au prix d'un juge de personnes et négocier chaque cas. Lorsque l'on considère l'objectif des systèmes de construction à partir de composants logiciels réutilisables, avec des objets complexes utilisant les services de l'un et de l'autre50, cette tendance à la somme les coûts deviennent pathologiques. La structure d'incitation particulière d'un le marché de la tarification par copie a peut-être été un obstacle plus important à la réalisation Le rêve de Hamming que les obstacles techniques les plus évidents.

Sur les marchés du matériel, il peut être préférable de charger pour l'utilisation d'un dispositif que de vendre une copie à l'utilisateur:

Pourquoi [le premier copieur de Xerox) a-t-il eu le succès ? Deux choses a contribué à la percée, dit McColough. . .technologique la supériorité. . . et tout aussi importante, le génie commercial de la concept de prix de vente [l'utilisation du copieur, et non de machines. «Un aspect sans l’autre n’aurait pas fonctionné», a-t-il déclaré. . . . Nous ne pouvions pas vendre les machines purement et simplement parce qu'elles auraient été trop cher.»
Jacobson et Hillkirk, 198651

Les systèmes agorics soutiendront naturellement un marché à la charge par utilisation logiciel. Sur n'importe quel marché, les producteurs de logiciels tenteront d'extraire des redevances importantes de la part d'utilisateurs à grand volume. Avec frais par utilisation, Toutefois, les frais à payer par les utilisateurs à forte volume ne seront plus s'y opposeront; en conséquence, ils utiliseront des logiciels coûteux qu'ils ne pouvaient pas se permettre aujourd'hui. Dans le même temps, les utilisateurs à forte volume d'expérience d'un prix marginal limité pour l'utilisation logiciels, plutôt que de l'acheter et de payer un prix marginal nul pour l'utiliser; ils réduiront certaines de leurs utilisations marginales et de faible valeur. L'intérêt global de nombreux utilisateurs à faible volume d'utilisation à forte valeur ajoutée du logiciel l'emportera probablement sur la perte associée à quelques-uns les utilisateurs à forte volume de réduction de leurs utilisations de faible valeur, donnant un net l'allocation sociale. Il semble probable qu'une partie de ces avantages apparaîtra comme augmentation des recettes des producteurs de logiciels, en encourageant l'augmentation des logiciels la production.

Dans un marché de la redevance par copie, les utilisateurs sont confrontés à une structure d'incitation dans laquelle ils ne paient rien pour continuer à utiliser leur logiciel actuel, mais doivent payer un une grosse somme forfaitaire s'ils décident de passer à un concurrent. A le marché de la charge par utilisation éliminera cette barrière artificielle au changement, encourager une concurrence plus vive entre les producteurs de logiciels et mieux adaptation des logiciels aux besoins des utilisateurs.

En permettant à de petits objets de percevoir des redevances pour leurs créateurs, les marchés de la redevance par utilisation encourageront la rédaction, l'utilisation et la réutilisation de Les composants logiciels à faire seront enfin favorables à l'ajustement. Effectifs l'amélioration de la productivité de la programmation devrait en résulter; Les améliorations multiplieront les avantages qui viennent d'être décrits.

6.1.2. Ensibération matérielle

Ce scénario de tarification par utilisation pose un problème technique majeur: dépend de la capacité de protéger véritablement les logiciels contre la copie illicite. Une véritable encapsulation garantirait cela, mais une véritable encapsulation sera nécessitent une fondation matérielle qui bloque les attaques physiques sur la sécurité. Deux approches semblent réalisables: soit conserver des copies en quelques-uns seulement sécurisés les sites et en permettant l'accès à leurs services sur un réseau, ou le développement d'une technologie permettant aux utilisateurs de sites locaux sécurisés quel logiciel peut migrer.

Dans la limite des coûts de communication nuls (en termes d'argent, de retard et les limitations de la bande passante), le facteur dissuasif du calcul à distance serait disparaisse. Plus généralement, des coûts de communication plus faibles en feront plus. pratique pour les objets situés sur des machines distantes afin d'offrir des services à objets sur des machines à usage d'utilisateurs. Les machines à distance peuvent fournir une base matérielle pour une encapsulation sécurisée et une protection contre la copie, ils peuvent être physiquement sécurisés, dans une chambre forte si nécessaire. Cette approche de la sécurité devient plus attrayante si le logiciel peut être partitionné en front-ends du domaine public (qui s'engagent dans une interaction à large bande avec un utilisateur), et les back-ends propriétaires (qui effectuent des calculs sophistiqués), et si Les exigences en bande passante entre les fonds avant et les back-ends peuvent être minimisées.

Un système qui pourrait se prêter à cette approche est une ingénierie service [13. La machine de l'utilisateur tiendrait logiciel pour la représentation, l'édition et l'affichage du matériel conceptions. Le système dorsal peut-être un vaste écosystème de marché contenant des objets de diverses fonctionnalités et de propriété - fournirait modélisation numérique à forte intensité de calcul des dessins, l'aporisage de l'heuricularisation objets (peut-être ressemblant à des systèmes d'experts) pour suggérer et l'évaluation des modifications, etc.

Deux inconvénients de la séparation des fonds avant et des fonds d'arrière-plan de cette manière sont les suivants: le coût des communications et le temps de réponse. Si l'encapsulation matérielle peut être toutefois, sur la machine de l'utilisateur local, le logiciel peut migrer là (sous forme cryptée) et fournir des services sur place. Les boîtes opaques sont une conception possible pour un tel matériel sécurisé:

Imaginez un boîtier contenant des capteurs et de l'électronique capable de reconnaître un la tentative de porter atteinte à l'intégrité de la boîte [52. En L'ajout, le boîtier contient un processeur, une RAM dynamique et une batterie. En cette RAM est la clé privée du cryptage à clé publique du fabricant paire de clés [29; objets chiffrés avec le public clé peut migrer vers la boîte et être déchiffrée en interne. Si la boîte détecte une tentative de violer son intégrité physique, il essuie le RAM dynamique (les processus physiquement destructeurs sont acceptables), suppression la clé privée et toutes les autres données sensibles. Tout stockage sur disque est à l'extérieur de la boîte (l'effacement de disque à sucre rapide serait trop violent), donc les logiciels et autres données doivent être cryptés lorsqu'ils sont écrits et décryptés. en lisant. La boîte est dite opaque car personne ne peut en voir le contenu.

Sur le plan interne, la boîte opaque nécessiterait une encapsulation entre les logiciels. objets. Cela peut se faire en utilisant un système d'exploitation sécurisé. (VI) en utilisant le matériel de capacité [53,54,55, p. ou en exigeant que les objets soient écrits dans un langage de programmation sécurisé et soit géré sous l'autorité d'un interprète sécurisé, soit compilés par un Compilateur (IV,56). Entre autres objets, la boîte contiendrait une ou plusieurs branches de banques extérieures, les lesquelles sont liées de temps à autre par des communications chiffrées; ces communications; Les banques s'occuperaient des paiements de redevances pour l'utilisation des logiciels.

Un coût plus élevé du matériel rend les boîtes opaques non compétitives pour les personnes des systèmes informatiques? Si le coût supplémentaire n'est pas trop de centaines de dollars, la disponibilité des logiciels de plus grande capacité sera beaucoup plus importante, pour beaucoup utilisateurs. Les boîtes opaques peuvent soutenir un marché de la charge par utilisation sur lequel les copies des logiciels sont disponibles pour le coût des télécommunications. CD-ROM La totalité des logiciels cryptés pourrait être vendue à un coût symbolique pour encourager utilisation.

Une approche intermédiaire devient séduisante si les boîtes opaques sont trop cher pour être utilisé comme machines personnelles. Les applications pourraient être scindées en les fonds avant et les fonds d'arrière comme ci-dessus, mais les back-ends pourraient fonctionner sur n'importe quel montant disponible. boîte opaque. Ces boîtes pourraient être situées chaque fois qu'il y a suffisamment de la demande, et liées aux machines personnelles via une largeur élevée réseaux. Les personnes (ou les logiciels) trouveraient des investissements dans des boîtes opaques rentables, puisque leurs transformateurs généreraient des revenus. Avec suffisamment de temps Coûts de fabrication de boîtes, cette approche se confond avec la télémachine Scénario; avec des coûts suffisamment faibles, il se fond dans la machine personnelle scénario.

6.1.3 Inhibition des vols

Au fur et à mesure que la société incarne de plus en plus ses connaissances et ses capacités logiciel, le vol de ce logiciel devient un danger croissant. Une un environnement qui encourage la création de grands, capables, autonomes les applications vendues sur une base factuelle par copie amplifie ce problème, en particulier lorsque le logiciel volé sera utilisé dans des endroits au-delà de la la réalisation du droit d'auteur.

Un environnement de charge par utilisation réduira ce problème. Elle encouragera le développement de systèmes logiciels qui sont des composites de nombreux les paquets propriétaires, chacun ayant sa sécurité gardée par son créateur. En outre, elle encouragera la création de systèmes qui sont distribués. sur de nombreuses machines. La division et la répartition des fonctions consisteront le problème auquel un voleur est moins celui de voler une voiture et plus comme celle du vol d'un chemin de fer. Méthodes traditionnelles de limitation du vol (comme la classification militaire) ralentissent les progrès et entravent l'utilisation; les marchés de calcul promettent de décourager les vols en excès de vitesse le progrès et la facilitation de l'utilisation.

6.1.4. Intégration au marché humain

Il a été montré comment un système agorique utiliserait les mécanismes de prix pour allouer l'utilisation des ressources matérielles entre les objets. Ces informations sur les prix soutiendra également l'amélioration des décisions concernant l'achat de matériel: le prix du marché d'une ressource à l'intérieur du système est systématiquement supérieur à la prix d'achat d'une plus grande partie de la ressource sur le marché extérieur, puis Une expansion incrémentale est avantageuse. En effet, on peut envisager des scénarios dans lesquels des objets logiciels reconnaissent un besoin de nouveau matériel, louez de la place pour elle, et achetez-la comme un investissement.

Il a été montré comment les objets d'un système agorique serviraient l'homme les besoins, avec des esprits humains jugeant leur succès. De même, lorsque des objets sont compétents pour juger le succès, ils peuvent embaucher des humains pour servir leur les besoins -, par exemple, pour résoudre un problème nécessitant des connaissances humaines ou Perçu.

Le droit de Conway stipule que « les organisations qui conçoivent les systèmes sont contraints de produire des systèmes qui sont des copies des communications des structures de ces organisations» (à partir de [57 citée en [58). Dans l'affirmative, les systèmes logiciels on peut s'attendre à ce que l'on s'aperçoive l'organisation de la société dans son ensemble. Dans une société décentralisée coordonnés par les mécanismes du marché, les systèmes agoriques sont un résultat naturel.

6.2. Le marché de l'esprit

L'intelligence artificielle n'est pas nécessaire pour construire un projet agorica et d'obtenir les avantages décrits ici. Mise en place d'un tel système peut toutefois accélérer les progrès de l'intelligence artificielle. Feigenbaums « Au savoir, le pouvoir », souligne que l'intelligence intensive est à forte intensité de connaissances; «l'acquisition des connaissances Le goulet d'étranglement » est reconnu comme un obstacle majeur à l'IA. Stefik a a observé VIIque ces connaissances sont distribuées dans l'ensemble de la société; il appelle à un "média de la connaissance" dans lequel la connaissance La contribution de nombreuses personnes pourrait être combinée pour parvenir à une plus grande l'intelligence.

Les systèmes agoriques devraient constituer un support de connaissances attrayant. Dans une grande, évolution du système, où les participants sont grands mais dispersés; Connaissance, un principe important, est le suivant: «Dans la structure incitative, il y a lieu le pouvoir ». En particulier, les incitations d'une répartition, le marché de la tarification par utilisation peut élargir le goulet d'étranglement en ingénierie des connaissances encourager les gens à créer des morceaux de connaissances et de connaissances les systèmes qui fonctionnent ensemble.

Approches fondées sur l'achat et la vente directs de connaissances [VII,23) des incitations particulières d'un marché de la redevance par copie. Ce problème peut être évitée en incarnant la connaissance dans des objets qui vendent des connaissances les services, pas la connaissance elle-même. De cette façon, une partie de connaissances donnée peuvent être conservés comme propriétaires pendant un certain temps, ce qui permet aux producteurs de facturer aux utilisateurs les redevances qui se rapprochent de la valeur que les utilisateurs y placent. Il s'agit d'un inciter les gens à mettre ces connaissances à disposition. Mais dans la longue la course, les connaissances vont se propager et la concurrence fera baisser le prix de l'approche des services de connaissance connexes, qui sont utilisés en informatique le coût de leur fourniture.

Les systèmes ouverts agoriques peuvent encourager le développement de l'intelligents objets, mais il y a aussi un sentiment dans lequel les systèmes eux-mêmes vont Devenez intelligent. Voir cela implique de faire la distinction entre l'idée de l'intelligence et des idées d'individualité, de conscience, et le testament. Considérons le cas analogue de la société humaine.

On peut faire valoir que le système le plus intelligent maintenant connu est humain la société dans son ensemble. Cette affirmation frappe certaines personnes comme évidentes, mais d'autres ont le sentiment fort que la société doit être moins considérée intelligent qu'une personne. Ce qui pourrait être responsable ces points de vue divergents?

L'argument en faveur de la stupidité de la société ne se concentre souvent pas sur la les réalisations de la société, mais sur sa structure sous-optimale ou sa lenteur taux de changement structurel. Cela semble injuste. Les cerveaux humains sont vraisemblablement sous-optimale, et leur structure de base a changé accélération glaciale au cours des périodes de l'évolution biologique, mais non l'on soutient que la société est pire structure qu'un cerveau (qu'est-ce qui serait que cela signifie?), ou que sa structure de base change plus lentement que cela d'un cerveau. Une grande intelligence n'implique pas nécessairement une structure optimale, et une structure sous-optimale n'implique pas la stupidité.

D'autres arguments en faveur de la stupidité de la société se concentrent sur le comportement de les comités, ou les foules, ou les électeurs. Cela semble également injuste. Humains les êtres incluent non seulement les cerveaux, mais aussi les intestins; notre intelligence n'est pas être jugé par le comportement de ce dernier. Toutes les parties n'ont pas besoin d'être intelligent pour qu'un système le soit. D'autres arguments encore se concentrent sur les choses les individus peuvent faire ce groupe ne le peut pas, mais on pourrait aussi bien soutenir que Newton était stupide parce qu'il ne parlait pas d'ourdou. Un dernier argument en faveur d'un la stupidité de la société se concentre sur les problèmes qui en résultent quand quelques-uns les individus dont on pense qu'ils représentent d'une manière ou d'une autre la société tentent de diriger les actions du grand nombre d'individus qui en fait composer la société, c'est-à-dire les problèmes de la planification centrale, le gouvernement, et la bureaucratie. Cette déclaration de l'argument semble adéquate Réfutation de celui-ci.

L'argument de l'intelligence de la société est simple : des personnes de la diversité les connaissances et les compétences, en donnant des orientations générales par les incitations d'un système de marché, peut atteindre une série d'objectifs qui, s'ils sont atteints un individu, ferait de cet individu un super-génie humain. Le l'industrie informatique est une petite partie de la société, mais ce que l'individu pourrait l'égale accomplissement, ou la portée et la rapidité de ses réalisations en cours Capacité de résolution de problèmes?

Néanmoins, il est légitime de se demander ce que cela signifie de parler de la « intelligence » d'un système diversifié et distribué. Lors de l'examen d'une individu, un identifie couramment l'intelligence avec la capacité de atteindre un large éventail d'objectifs grâce à un traitement complexe de l'information. Mais dans les systèmes agoriques, comme dans la société humaine, les entités composantes en général a des objectifs divers, et le système dans son ensemble sera typiquement n'ont pas d'objectifs59. Néanmoins, un concept similaire de l'intelligence peut être appliquée aux individus, aux sociétés, et les marchés de calcul.

Les personnes qui passent des tests d'intelligence sont jugées en fonction de leur capacité à atteindre les objectifs fixés par un donneur d'essai en utilisant le temps prévu à cet effet. De même, l'intelligence d'une société peut être jugée en fonction de sa capacité à atteindre les objectifs fixés par les individus, en utilisant les ressources prévues pour but. Dans les deux cas, la nature et le degré de l'intelligence peuvent être identifiés avec une combinaison de l'éventail d'objectifs qui peuvent être atteints, la vitesse à laquelle ils peuvent être atteints, et l'efficacité des moyens employés. Par cette mesure, on peut associer des types et les degrés d'intelligence non seulement avec les individus, mais avec les sociétés, avec des collections ad hoc de fournisseurs et de sous-traitants, et avec les marchés et les institutions qui apportent ces collections ensemble au besoin. L'idée d'intelligence peut ainsi être séparée de les idées d'individualité, de conscience et de volonté.

La notion d'intelligence émergeant des interactions sociales est familière dans l'intelligence artificielle: Minsky [60) utilise la métaphore de la société dans ses récents travaux sur la pensée et l'esprit; Kornfeld et Hewitt (61) utilisent la communauté scientifique comme modèle pour les programmes intégrant le raisonnement d'une procédure régulière. Sociétés humaines démontrer comment des éléments de connaissances et de compétences distribués peuvent être intégré dans des ensembles plus vastes et plus complets; ce processus a été une étude approfondie de l'économie 8et de la sociologie [63) Parce que ces processus sociaux (contrairement à ceux dans le cerveau) implique l'interaction parfois intelligible du visible, les entités macroscopiques, elles se prêtent à l'étude et à l'imitation. C'est ce que On peut ainsi considérer que le papier propose une forme de multi-agents, de société approche de l'intelligence artificielle.

7. L'absence de systèmes agoriques

Les systèmes logiciels de type marché sont une idée assez évidente et ont Il y a eu une certaine attention. Toutefois, en envisageant toute idée assez évidente avec (prétendument) un potentiel grand mais non réalisé, il est sage de demander pourquoi En fait, ce potentiel n'a pas été réalisé. Quand une idée de ce genre ne se prête ni à des preuves formelles, ni à de petites, convaincantes les démonstrations, la difficulté de plaider en faveur de sa croissance. Appui d'arguments abstraits et d'analogies peuvent être utiles, de même qu'un l'examen des questions pratiques en jeu. Mais en plus, il aide de voir si l'idée a été testée et trouvée envie. Considérant cette grande catégorie de preuves négatives possibles est un aspect de raisonnement du processus en cause.

Pourquoi les systèmes anciens ouverts n'ont-ils pas déjà été mis en œuvre? En partie, Parce que la communauté des logiciels n'a pas eu un besoin immédiat et impérieux. Des progrès ont été réalisés grâce à de meilleurs environnements de programmation et (y compris l'encapsulation et la communication l'information et l'accès), et grâce à des outils permettant de créer des structures plus grandes; visible pour les programmeurs [64) - tous sans construction marchés. Ces environnements et ces méthodes - idéologies ont étendu le la durée conceptuelle du contrôle du programmeur, permettant un esprit ou quelques-uns des esprits étroitement coordonnés et mutuellement chargés de construire de plus en plus grands et des programmes plus complexes. Ces avances ont réduit l'urgence de permettre une large coopération sans confiance mutuelle ou étendue les communications.

Un autre problème a été la sensibilisation à l'échelle de l'approche du marché. Dans les petits systèmes, les frais généraux de comptabilité et les négociations sont d'une nouvelle augmentation progressive de l'échelle n'a été plus que jusqu'à présent possible sans marchés. Les objets de commerce de services robustes doivent être munis d'un une certaine complexité minimale, ou avoir accès à des agents d'affaires de confiance une certaine complexité minimale. Les vertus des marchés sont les plus grandes en de vastes systèmes divers.

Il y a peut-être aussi un facteur culturel à l'œuvre. Grandes, les réseaux informatiques orientés vers la recherche se sont concentrés sur les domaines académiques et le travail du gouvernement, c'est-à-dire l'utilisation à but non lucratif. En outre, les universitaires la communauté dispose déjà d'une structure d'incitation informelle qui récompense la créateurs de logiciels utiles de manière progressive, en proportions approximatives à son utilité. Ces mécanismes de récompense fondés sur la réputation facilitent le développement de systèmes logiciels qui s'appuient sur les travaux des autres; dangers d'incitations au sein de la communauté commerciale sa plus grande tendance à construire des systèmes redondants à partir de zéro.

Ces considérations semblent suffisantes pour expliquer l'absence d'agoricité les systèmes aujourd'hui, tout en donnant des raisons de s'attendre à ce qu'ils deviennent souhaitable à mesure que les systèmes informatiques et les réseaux se développent. Dans la grande, ouverte, l'évolution des systèmes logiciels de l'avenir, les frais généraux de comptabilité être moins importants que la robustesse et la flexibilité. En outre, la le développement de systèmes de programmation automatisés introduira les «programmeurs» ayant (initialement) une capacité très limitée à planifier et Compréhension. Cela mettra à nouveau l’accent sur le problème du «programmeur». de contrôle conceptuel et d'accroître la nécessité de mécanismes qui renforcer la localisation et la robustesse du système.

8. Conclusions

Un défi central en informatique est la coordination de la complexité systèmes. Dans les premiers jours du calcul, la planification centrale en premier lieu, les différents programmeurs étaient inévitables. Au fur et à mesure que le champ s'est développé, les techniques ont favorisé une plus grande décentralisation et une meilleure utilisation la connaissance divisée. Le principal de ces techniques a été axé sur les objets. la programmation, qui donne en fait des droits de propriété sur les données à les entités de calcul. Il semble que l'on progresse davantage dans cette direction. possible.

Expérience dans la société humaine et analyse abstraite en économie indiquer que les mécanismes du marché et les systèmes de prix peuvent être étonnamment efficace dans la coordination des actions dans les systèmes complexes. Ils intègrent les connaissances provenant de diverses sources; elles sont solides face à l'expérimentation; elles encouragent les relations de coopération; et elles sont intrinsèquement parallèlement en fonctionnement. Toutes ces propriétés n'ont pas de valeur juste dans la société, mais dans les systèmes informatiques: les marchés sont un l'abstraction qui n'a pas besoin d'être limitée aux sociétés de primates parlants.

Le présent document a examiné nombre des questions concrètes en jeu. la création de marchés informatiques, à partir de fondations matérielles et logicielles, aux premières stratégies de marché pour la gestion des ressources (principalement III), à l'organisation des systèmes d'objets et les agents capables d'interagir dans un contexte de marché. Jusqu'à présent, pas d'obstacle à leur réalisation a été trouvée.

Systèmes distribués basés sur la vente de logiciels à charge par utilisation les services et les ressources de calcul promettent une plus grande souplesse et un marché de logiciels efficace, dans lequel les grands systèmes seront plus souvent construits à partir de parties préexistantes. Avec de nombreux esprits qui acquièrent des connaissances et compétence dans les objets de marché et avec des incitations en faveur de la coopération parmi ces objets, la capacité globale de résolution des problèmes du système On peut s'attendre à une croissance rapide.

À petite échelle, la planification centrale a du sens; à plus grande échelle, les mécanismes du marché ont du sens. L'informatique a commencé dans un domaine où la planification centrale était logique, et la planification centrale a donc été traditionnel. Il semble toutefois probable que certains systèmes informatiques modernes sont déjà suffisamment vastes et suffisamment variées pour bénéficier de la décentralisation coordination du marché. À mesure que les systèmes se développent en ampleur et en complexité, les avantages des systèmes de calcul fondés sur le marché.

Appendice I. Problèmes, niveaux et échelle

La présente annexe examine comment divers problèmes informatiques changent de caractère de niveaux inférieurs à supérieurs de système (dans le sens décrit dans Section 3.7). Les systèmes ouverts agoriques peuvent le plus être facilement développé en s'appuyant sur les systèmes actuels en trouvant des moyens d'assurer une transition sans heurts entre la pratique actuelle de programmation et la pratiques appropriées pour le marché des écosystèmes. (Un aspect de ce point est traité avec l'in IIIIII.) Comprendre comment les questions vont le passage d'un niveau à l'autre contribuera à ce processus et minimisera les chances éventuelles; d'induire à mauvais escient des concepts d'un niveau à des problèmes à un autre niveau.

Des niveaux d'organisation plus élevés soulèveront des questions qui ne seront pas tant abordées en matière de système l'exactitude en tant que cohérence du système. Par exemple, pendant un tri un algorithme peut être correct ou incorrect, une grande collection de logiciels les outils peuvent être cohérents ou incohérents - ses parties peuvent bien fonctionner ensemble ou mal, même si tous sont individuellement corrects. La notion de cohérence présuppose un niveau de complexité qui le rend inapplicable à un tri algorithme. Malgré les différences entre l'exactitude et la cohérence, ils ont beaucoup en commun: l'exactitude peut être considérée comme une version formelle de cohérence, une cohérence appropriée pour les objets à petite échelle. Dans ce cas, comme dans de nombreux des questions suivantes, critères d'arrêt à des niveaux inférieurs l'organisation a des homologues à pointes à des niveaux plus élevés.

Changements dans le caractère des problèmes entre les niveaux

I.1 Sécurité

Alan Kay a caractérisé la compatibilité, la sécurité et la simplicité comme propriétés essentielles pour la construction de systèmes ouverts. Pour une non-confiance mutuelle les objets pour interagir volontairement, ils doivent être sécurisés. L'encapsulation peut assurer la sécurité à un niveau bas, en tant que propriété formelle de calcul. Avec cette propriété, on peut coder un objet de sorte que l'intégrité d'un la structure interne des données est garantie malgré d'éventuels non-sens messages. La sécurité à un niveau élevé implique un scepticisme et la mise en place de systèmes efficaces de réputation. Le scepticisme permet une s'opposer à continuer à raisonner de manière cohérente bien qu'on lui dise occasionnellement mensonges.

Encapsulation dans ce cas, une protection contre les manipulations est nécessaire pour le scepticisme au travail. Sans encapsulation, un objet sceptique les défenses intellectuelles pourraient être surmontées par l'équivalent du cerveau chirurgie.

I.2. Compatibilité

La compatibilité permet aux objets d'être mutuellement intelligibles, malgré origines diverses. Au niveau fondamental, il s'agit d'un message partagé une compréhension mutuelle et une compréhension mutuelle d'un protocole. À l'intérieur d'un petit programme écrit par un seul programmeur, les objets peuvent être soigneusement conçus de sorte que deux autres qui communiquent utiliseront nécessairement le même protocole. Entre grands objets écrits par des personnes différentes, ou la même personne à différentes fois, le contrôle de l'accord de protocole peut souvent empêcher catastrophe. Par example, si un objet est passé avec une référence à une recherche lorsqu'il attend un numéro, il peut aider à apprendre que "addition" ne sera pas comprise par le tableau avant Je l'ai essayé. Il convient de noter qu'il s'agit lui-même d'un accord sur un point de base. protocole qui fournit un langage pour parler d'autres protocoles.

Dans le système de réseau Xerox, les clients et les serveurs ne se limitent pas à comparer type de protocole qu'ils peuvent parler, mais l'éventail des versions de protocole qu'ils comprennent [65. Si leurs fourchettes se chevauchent, ils parlent alors la dernière version comprise entre elles. Si leurs plages ne se chevauchent pas, elles se séparent et suivent leurs voies séparées. Il s'agit d'un exemple d'amorçage d'un protocole mutuellement compris déterminer l'intelligibilité d'autres protocoles. Le développement Le domaine de l'interopérabilité (66) devrait bientôt prévoir Beaucoup plus.

Les objets sophistiqués devraient finalement avoir des capacités encore plus larges. Les êtres humains, lorsqu'ils sont confrontés à un nouvel équipement, peuvent souvent Apprendre à faire un usage rentable de capacités inconnues. Parmi les les techniques qu'ils utilisent sont l'expérimentation, la documentation de lecture, et demander un consultant. On peut s'attendre à terme à des analogues informatiques (67)

I.3. Diplômes de confiance

La sécurité est nécessaire là où la confiance fait défaut, mais la sécurité implique les frais généraux, ce qui constitue une incitation à la confiance. A un faible niveau, un seul auteur peut créer une communauté d'objets confiants. À un niveau intermédiaire la confiance de niveau devient plus risquée parce que l'erreur devient plus probable. C'est ce que encourage la vérification des erreurs aux interfaces internes, comme c'est sage lorsqu'une équipe des programmeurs (ou un programmeur oublieux) doivent se réunir séparément des modules développés.

À des niveaux supérieurs, des considérations stratégiques peuvent encourager la confiance partielle. Un ensemble d'objets peut constituer un objet plus grand, où le succès de chaque dépend du succès de tous. Ici, les objets peuvent se faire confiance pour Poursuivant leur effort commun [68. Axelrod tournoi de dilemmes des prisonniers itérés (69voir également [I)) montre une autre manière de savoir Des considérations peuvent donner lieu à la confiance. Un objet peut généralement s'attendre comportement coopératif d'un autre membre s'il peut s'arranger (ou être sûr de) les incitations appropriées.

Dans un jeu de dilemmes de prisonniers itérés, cela nécessite à la fois d'avoir une relation à long terme et le paiement des frais généraux de notification et réagir au comportement non coopératif. Systèmes de réputation dans un la communauté peut étendre ce principe et abaisser les frais généraux de son utilisation. Certains objets peuvent collecter et vendre des informations sur le passé d'un autre objet. performance: les deux mesures d'incitation sont de plus en plus efficaces; et réduire le coût de l'identification et de l'éviter les artistes interprètes ou exécutants. En effet, les systèmes de réputation peuvent placer un objet dans un a itéré la relation avec la communauté dans son ensemble.

L'idée que l'encapsulation est nécessaire à de faibles niveaux pour la sécurité, où Nous attendons également qu'une confiance totale semble impliquer un conflit. Mais le fonction de l'encapsulation est de protéger des objets simples où la confiance est limité ou absent (comme il sera le cas, entre quelques paires d'objets). Une confiance totale est logique entre des objets simples qui sont dans un sens ou un autre jouer dans la même équipe.

I.4. Raisonnement

La recherche sur les langues de programmation a bénéficié de la méthodologie de formalisation de la sémantique des langages de programmation. Un résultat est la capacité à raisonner avec confiance (et de manière mécanique) sur les propriétés de programmes exprimés dans ces langues. Cela peut établir une confiance dans l'exactitude des programmes ayant des spécifications simples. La logique la méthodologie de la communauté de la programmation est en train d'explorer la méthodologie de transformation d'un spécification formelle dans un programme logique avec la même déclaration lire. Le programme logique qui en résulte n'est généralement pas garanti pour mettre fin, mais si c'est le cas, il est garanti de donner un résultat correct, puisque l'interprète est un orateur de théorème sain (bien qu'incomplète) et le programme est un théorème sonore.

La logique déductive semble insuffisante en tant que modèle de raisonnement de haut niveau, Bien qu'il y ait beaucoup de controverse à ce sujet. Raisonnement de haut niveau implique la pesée des arguments de pro et de plausibilité (procédé dû raisonnement), changeant l'esprit (non-monotonicité), croyant des déclarations contradictoires sans croire à toutes les déclarations, etc. Il y a eu des tentatives de « fixer » la logique pour être en mesure de traiter ces d'après les questions, mais [70) fait valoir que celles-ci ne seront pas succès. Une approche plus appropriée du raisonnement de haut niveau met l'accent sur la cohérence, la plausibilité et le pluralisme au lieu de l'exactitude, de la preuve, et des faits. (Cela ne constitue pas une critique de la programmation logique: les langages de programmation logique, comme les langages de calcul lambda, peuvent s'exprimer calculs arbitraires, y compris ceux qui incarnent des modes non logiques de raisonnement.)

I.5. Coordination

Afin de coordonner l'activité dans un monde concurrent, il faut mécanisme de sérialisation. Semaphores [71) et des acteurs sérialisés (IV,33,4) permettre un choix entre les processus en lice pour une ressource partagée; ces primitives permettent à leur tour un contrôle de simultanéité plus complexe régimes tels que les moniteurs [19 et les réceptionnistes 4 qui 4permettent à la ressource protégée d'interagir avec plus d'un processus à la fois. Les moniteurs à leur tour ont été utilisés pour construire des transactions avortables distribuées (comme dans Argus, décrit ailleurs dans le présent volume (V), qui soutiennent calcul cohérent face à une défaillance par des machines individuelles.

Pour les très grands systèmes distribués, la coordination fondée sur les transactions demande trop de cohérence pour un trop grand nombre de participants. Diffusion modèles (38,39,72), et des modèles de publication [23,73 fournir des mécanismes qui s'appliquent à des échelles plus importantes.

Le Colab est un autre projet qui a élargi les notions de coordination contrôle. Colab est un projet de construction d'un laboratoire collaboratif-a Environnement interactif multi-utilisateurs pour soutenir les travaux de collaboration [74. Dans le Colab, un groupe de personnes travaille ensemble sur un ensemble de données et se disputent parfois le droit de modifier la même donnée. Premières tentatives pour y faire face par la transposition à plus grande échelle des transactions s'est révélée inadaptée. Au lieu de cela, des mécanismes de coordination sociale ont été trouvés, tels que des signaux pour indiquer L'intérêt d'une personne à changer une donnée. L'applicabilité de ces mécanismes ne sont pas spécifiques à l'homme, mais devraient généraliser dans laquelle il y a souvent un investissement important dans un calcul qui serait jeté par une transaction avortée.

Un aspect essentiel des mécanismes de coordination de haut niveau est la négociation. Lors de l'attribution d'un accès exclusif à une ressource pour milliseconde, il est souvent logique de s'appuyer sur une simple sérialisation. Quand l'attribution d'un accès exclusif pour une année, il est souvent logique de prendre plus de soins. Une forme simple de négociation est une procédure d'enchère-a. dans laquelle la ressource est allouée au plus offrant. Hewitt en [75) explore le règlement de Robert comme base pour des procédures de négociation plus sophistiquées.

Même des mécanismes de négociation sophistiqués s'appuieront souvent sur des primitives. sérialisateurs. Lors des ventes aux enchères, un commissaire-priseur en série émet des offres; dans Robert’s Règles, la chaise en série permet l'accès à l'étage.

I.6. Résumé

La présente section examine comment toute une série de questions-sécurité, de compatibilité, la confiance, le raisonnement et la coordination peuvent apparaître à différents niveaux de les systèmes ouverts fondés sur le marché. Certains thèmes sont apparus à maintes reprises. Les mécanismes à faible niveau soutiennent souvent ceux qui sont à des niveaux plus élevés, comme (pour example) des mécanismes de coordination de haut niveau à l'aide de simples sérialiseurs. En outre, des niveaux plus élevés peuvent hériter de caractéristiques de niveaux inférieurs, tels que comme les lois d'encapsulation et de conservation.

Les problèmes se brouillent souvent au niveau supérieur - la sécurité et la confiance deviennent s'imbridant, et peut à la fois dépendre du raisonnement du processus endue. L'essentiel de le présent document se concentre sur les préoccupations de faible et moyenne portée qui doivent être les questions abordées en premier lieu, mais les questions de haut niveau présentent toutes une multitude d'éléments importants. les thèmes de recherche.

Appendice II. Comparaison avec d'autres systèmes

Cette section, et ces documents, discutent et critiquent de nombreux ouvrages. Nous de souligner que ces œuvres ont été choisies, et non pour leur défauts, mais pour leur valeur.

II.1. Le système de publication hypertexte de Xanadu

Le présent document a comparé les systèmes agoriques à d'autres systèmes. pour le calcul. Notre première exposition à nombre des idées centrales de Les marchés et les calculs, cependant, découlent de notre travail avec le Xanadu système hypertexte [23) Xanadu est une proposition Support de publication en ligne pour les documents hypertextes. Un document hypertexte diffère de la notion normale d'un document en ce qu'il contient liens, liens entre documents que les lecteurs peuvent suivre à la Cliquez sur une souris. Les documents publiés ne sont donc pas un ensemble de des îles déconnectées, mais un web relié par des références, des guillemets, critiques, commentaires et réfutations.

Comment un lecteur peut-il trouver un chemin dans un tel web interconnecté ? Plutôt que proposer qu'une personne (d'ailleurs) crée un indice de système officiel unique, le projet Xanadu propose d'appuyer l'indexation décentralisée, et d'où le pluralisme. Tout lecteur peut rédiger et publier un guide de tout un ensemble de documents publics. D'autres lecteurs peuvent alors utiliser ce guide pour trier. et s'orienter. N'importe qui peut, bien entendu, publier des guides pour d'autres guides. Xanadu s'appuie sur l'espoir que cette activité aboutir à un nombre spontané de documents qui sont richement connectés à l'ordre dans quels lecteurs peuvent trouver leur chemin.

Pourquoi l'indexation se fera-t-elle là où elle est nécessaire? En partie parce que les lecteurs feront l'affaire une grande partie de la recherche et du tri de base pour eux-mêmes, puis publier les résultats (puisque la publication est aisée). En outre, toutefois, Xanadu prévoit un arrangement de redevances par louement pour encourager la publication de matériel pour lequel il y a une demande. Tout comme le logiciel de charge par utilisation rendra économique l'assemblage de logiciels à partir de divers composants, L'arrangement de Xanadu en matière de redevances vise à encourager l'assemblage de documents provenant de parties d'autres documents: si un document en cite un autre, les paiements de redevances d'un lecteur sont répartis entre eux.

Dans Xanadu, les documents sont des données passives. Une façon de concevoir agoric les systèmes sont un support d'édition pour les données actives reliées.

II.2. Moyen de connaissance

Mark Stefik’s Le papier « média de connaissance » (VII) peint un visionnaire l'avenir dans lequel les systèmes d'IA, répartis dans toute la société, sont capables de communiquer et partager les connaissances. En revanche, les systèmes d'experts actuels sont vus comme des systèmes isolés reconstruits à partir de zéro à chaque fois. Une connaissance moyenne permettrait aux systèmes individuels de se spécialiser dans le codage les connaissances les plus pertinentes pour eux, et fourniraient un marché pour l'achat de connaissances ailleurs. En conséquence, le processus de l'encodage des connaissances devrait s'accélérer grâce à la division du travail et des économies d'échelle.

Cette proposition est compatible avec la vision des systèmes agoriques, mais elle a une accent quelque peu différent. Le document de Stefik met l’accent sur la représentation connaissances, communications et intégration représentations ensemble. Alors que nous attendons certainement (et nous espérons) que tous cela se produirait dans un système agorique, ce travail met l'accent sur la vente de les services fondés sur la connaissance. Dans la vision de Stefik, un «fournisseur de connaissances» répond à une demande en envoyant une représentation des connaissances qu'il contient; Spécialisé dans. Le consommateur est alors confronté à la tâche consistant à établir des liens entre cette représentation à sa part. Ce problème créerait un marché pour «intégrateurs de connaissances». Dans le modèle esquissé dans le présent document, la connaissance est «représenté» en l'incarnant dans des objets qui appliquaient leurs connaissances fournir des services. Les consommateurs intégreraient alors les résultats dans l'ordre de fournir d'autres services.

En raison du problème de copie, un marché des services devrait être plus efficace qu'un marché pour les représentations. Une fois que la connaissance est transmis, il se propage souvent sans récompenser davantage son créateurs. Cela réduit les incitations à la création de connaissances.

II.3. Net des entreprises

Entreprises (VIII), par Malone, assure la répartition décentralisée. la planification des tâches dans un réseau de postes de travail personnels par utilisation de mécanismes de type marché. Un processeur client ayant pour tâche d'être programme diffuse une demande d'appel d'offres aux contractorsous-traitants. Les contractants disponibles répondent par des offres; ces contrats sont évalués par le le client, qui envoie ensuite la tâche au meilleur soumissionnaire. Le client la demande comprend les caractéristiques de la tâche qui sont pertinentes à estimation de son temps de traitement. Le meilleur soumissionnaire est généralement le entrepreneur qui répond avec la plus rapide la période d'achèvement prévue. Ce protocole d'appel d'offres prévoit une prise de décision décentralisée et permet aux clients d'utiliser leurs propres critères pour évaluer les candidats les fournisseurs.

Comparé à l'approche des systèmes agoriques, Enterprise a plusieurs limitations. Elle suppose une confiance mutuelle totale entre les clients et les entrepreneurs, tous œuvrant à la réalisation d'un objectif commun. C'est aussi moins flexible dans les compromis qu'il peut rendre - le système contient non adaptable les paramètres du système et n'utilise aucun mécanisme de prix. Absence de signaux de prix, le système s'appuie sur des règles préétablies et non évolutives pour guider le comportement. L'inflexibilité d'un tel système est illustrée par les éléments suivants: example.

Imaginez deux tâches clientes: une tâche de démonstration de théorème hautement prioritaire et une tâche d'avérisation tâche de simulation d'écoulement de fluide moins prioritaire, et deux machines serveurs: a Vax 780 avec un processeur de réseau attaché et un Vax 750 sans un. Les deux tâches préfèrent le 780 parce qu'il est plus rapide, mais la tâche de simulation bien préfère cela en raison du processeur matriciel; en comparaison, le prouveur de théorème est relativement indifférent. Dans le domaine des entreprises, les deux essaieront d'obtenir le 780, et le 780 sera attribué à la priorité la plus élevée un proverbe théorème. Dans un système agorique, cependant, la tâche de simulation pourrait n'offrent qu'un montant insignifiant pour les 750, ce qui donne lieu à une un prix du marché suffisamment plus bas que le président constate Un marché qui vaut la peine d'être pris. Si le proverère théorème est déjà en cours sur le 780, la tâche de simulation pourrait proposer de la payer pour migrer au 750. Ce n'est qu'un exemple de la flexibilité que le marché les prix peuvent être mis à un système. Malone reconnaît qu'il peut être utile fournir un système de prix dans son cadre.

II.4. Comparaison par Malone de la structure organisationnelle

Malone [76) a également été comparé diverses structures organisationnelles de coordination des communautés agents. Une forte similitude entre le travail de Malone et le nôtre est le tenter de reconnaître les formes d'organisation parallèles dans les sociétés humaines et les systèmes informatiques.

Malone considère que les marchés sont capables de fournir des solutions efficaces les problèmes d'allocation décentralisée des ressources dans les systèmes informatiques, ils l'ont fait dans des organisations humaines. Il maintient également que les facteurs existent dans les sociétés humaines qui limitent l'optimalité des marchés peut être exclus des systèmes logiciels.

Coûts de transaction tels que les dépenses liées à la négociation limite le marché de l'utilisation des marchés et encourager l'utilisation d'autres formes de l'organisation humaine, comme les hiérarchies. Ces coûts de transaction l'augmentation des marchés incertains ou complexes. Les opérateurs doivent protéger d'autres commerçants opportunistes, généralement en établissant contrats; la négociation de ces contrats (et la vie avec leur les conséquences) impose des coûts de transaction importants.

Malone part du principe que ces coûts seront absents des systèmes informatiques, faisant valoir que « si les commerçants non opportunistes peuvent être rares chez l'homme marchés, il n'y a aucune raison pour que les programmes d'ordinateur ne puissent pas être construits avec des acteurs [non-opportunistes) dans un cadre de type marché organisation. » Cela peut être le cas pour les entités de calcul non évolutives. par l'auteur d'une personne ou d'une équipe. Dans un système distribué ouvert, Toutefois, les programmes seront eux-mêmes rédigés par une diversité de les personnes qui auront en fait des motifs opportunistes pour chaque autres systèmes de type EURISKO; autres [IX,77) peut évoluer de logiciels uniquement sous réserve de la contrainte du succès du marché. Un système conçu dans l'hypothèse de participants non opportunistes effectivement utilisés uniquement dans des contextes limités, à l'intérieur d'un Entreprise unique.

II.5. Harris, Yu et l'algorithme de planification de marché basé sur le marché

Harris, Yu et Harris ont postulé simuler des marchés à des problèmes de planification difficiles en usine. Bien que optimumité totale peut être définie dans ce cas, il est connu pour être NP-hard [78) et leurs premiers résultats indiquent que les horaires optimaux de Pareto sont très bons par la plupart des plats conventionnels mesures. Dans leur approche, les exigences, les contraintes, et les arbitrages pour la programmation d'une commande individuelle sont représentés par un fonction d'utilité. Ces fonctions utiles peuvent exprimer un grand nombre des contraintes «arbitraires» typiques d'une usine réelle, telles qu'une exigence qu'une étape suit une autre dans un délai donné. En ayant ces les fonctions d'utilité interagissent pour fixer les prix, une solution optimale de Pareto est trouvé relativement rapidement par l'escalade locale. « En moins d'une minute [Cet algorithme) peut programmer une commande nécessitant 150 étapes de traitement plus de 90 ressources » (78). Ce système, bien que non permettre l'évolution des stratégies de planification, démontre la valeur d'un modèle de marché pour orienter l'allocation des ressources par calcul signifie:

Le langage de représentation pour exprimer les préférences d'un l'ordre individuel est assez flexible, mais moins flexible qu'un ordre général langage de programmation. Cette perte confère certains avantages: les comportements opportunistes sont impossibles, et l'algorithme peut composer préférences via une technique de programmation dynamique efficace. Leurs l'algorithme crée ainsi une simulation de marché informatique, plutôt que un marché de calcul; il peut trouver un rôle au sein d'un marché de offrir des objets à des objets de planification à bas temps, guidés par des services externes prix du marché.

II.6. Le système de partage du temps de Sutherland

En « A Futures Market in Computer Time » (79), I. E. Sutherland décrit un mécanisme d'appel d'offres (mis en œuvre dans le cadre de qui se traduit par des ressources informatiques en fonction de la répartition les priorités des utilisateurs. Les utilisateurs sont en concurrence pour le temps d'ordinateur en faisant des offres pour les blocs de temps spécifiques, la monnaie d'appel d'offres étant des jetons qui sont affectés aux utilisateurs en fonction de leur priorité relative. Une offre peut être préempté par une offre plus élevée. Étant donné que les utilisateurs plus prioritaires ont plus de les jetons avec lesquels ils sont en mesure de surpasser les utilisateurs les moins prioritaires. Étant à l'outsider, un utilisateur peut alors essayer un bloc de temps « moins cher» pendant une période moins souhaitable de la journée.

En faisant varier le prix d'une période de temps avec la demande, plus efficace l'allocation des ressources est possible. Il y a toutefois des restrictions imposées sur les utilisateurs-utilisateurs ne peuvent pas échanger des jetons ou moins une offre - ce qui limite flexibilité de ce système.

II.7. Le lienisme et les algorithmes génétiques

Deux utilisations récentes des principes d'ordre spontané dans les logiciels sont connexionnisme (également connu sous le nom de systèmes neuronaux artificiels ou parallèles modèles de traitement distribué) [80) et génétiques algorithmes [81. Le premier puise son inspiration à partir de modèles de la manière dont les réseaux neuronaux peuvent fonctionner, le second à partir de l'évolution biologique d'origine génétique. Les deux systèmes ont montré des capacités impressionnantes d'apprendre à reconnaître les modèles dans des données bruyantes. La connaissance de ces modèles n'a pas besoin d'être conçue a priori par un concepteur humain. Au contraire, ces systèmes sont capables de filtrer les motifs à partir des données elles-mêmes. Bien que cela aboutisse à ces systèmes, «savoir» le pattern, il n'est nulle part explicitement représenté - ils ne savent pas ce que Les modèles qu'ils connaissent.

Ces systèmes et l'approche agorique partagent certaines similitudes. Tous sont des systèmes d'ordre spontanés s'engageant dans une représentation distribuée et s'adapter en partie à l'évolution des circonstances en s'adaptant (et en passant autour) des poids numériques. Certains aspects des algorithmes génétiques sont explicitement sur la base d'une métaphore du marché (82), et Barto propose des modèles de connexion vis où il s'agit de réseaux d'intérêt personnel unités (83).

Tous ces systèmes apprennent (en partie) en augmentant les poids numériques. associés à des composantes qui ont contribué au succès global. A problème qui doit être résolu par un tel algorithme d'apprentissage est division des récompenses lorsque plusieurs composantes ont contribué à un succès commun. Minsky écrit :

J'ai l'impression que de nombreux travailleurs dans le domaine les systèmes «auto-organisés» et les «filets neuronaux aléatoires» ne ressentent pas l'urgence de ce problème. Supposons qu'un million de décisions soient impliqués dans une tâche complexe (comme gagner un jeu d'échecs). Pourrions-nous à chaque décision, un millionième de crédit pour l'achèvement tâche?. . . Pour des problèmes plus complexes, avec des décisions en hiérarchies. . .et avec des incréments suffisamment petits pour assurer une convergence probable, les temps de course de course de vitesse deviendraient fantastiques.

Minsky l'a écrit en 1984. Malgré la progrès actuels du linkisme et des algorithmes génétiques, il reste considère que cette critique est d'une manière ou d'une autre que la critique est d'une manière fondamentalement correcte.

Un système d'apprentissage capable d'apprendre un meilleur crédit devrait être en mesure d'apprendre un meilleur crédit les mécanismes d'attribution. Dans un système agorique, lorsque plusieurs objets sont sur le point de travailler ensemble pour produire un certain résultat, ils peuvent négocier la division des bénéfices et des risques. Parmi les objets simples, et au début de la évolution d'un système agorique, cette négociation pourrait généralement être gérées par de simples stratégies initiales qui ne sont peut-être pas plus souples que la "propagation inverse"80 80et "bucket-brigade" 81 algorithmes employés par certains liens et systèmes d'algorithme génétique. Au fur et à mesure de l'évolution du système, la concurrence sur le marché récompensera les objets qui recourent à des négociations plus sophistiquées des stratégies qui reflètent mieux à la fois la valeur dérivée des différents contributeurs, et ce que leurs concurrents offrent.

Le lienisme et les algorithmes génétiques tentent de se substituer spontanément principes d'ordre pour les unités concurrentes de conception et d'unités concurrentes les systèmes ne sont pas de grands programmes conçus par des moyens classiques. Il y a beaucoup à gagner à la fois de la conception et de l'évolution; les systèmes agoriques L'approche a été conçue pour utiliser les points forts des deux.

II.8. Résumé

En résumé, la le marché a souvent été utilisé comme métaphore, il n'a généralement pas été utilisés comme un modèle réel - ces systèmes ne sont pas de véritables marchés informatiques. Les tentatives de copier des modèles qui sont apparues sur les marchés entraînent une perte de flexibilité par rapport à l'utilisation des marchés eux-mêmes. Cette critique est analogue à la critique relationniste de représentation modèles cognitifs [8080------------------------------- des motifs émergents tout en jetant les fondations qui les ont créés possibles, les modèles de représentation sont trop « fragiles », sacrifiant flexibilité et capacité d'apprentissage.

Reconnaissances

Depuis 1983, quand nous ont commencé à explorer les marchés informatiques, de nombreuses personnes ont contribué leurs idées sur ces concepts. Nous remercions ce qui suit d'une aide suggestions sur les systèmes agoriques et ces documents: Agustin Araya, Yeshayahu Artsy, Jim Bennett, Peter Bishop, Daniel Bobrow, John Seely Brown, Andrew Cameron, Peter Deutsch, Mike Dixon, Tom Finholt, Mike Fischer, Bob Flegal, Felix Frayman, David Friedman, Milton Friedman, Stuart Greene, Roger Gregory, Robert Gruber, Eric Gullicson, Ken Haase, Robin Hanson, Jed Harris, Rich Hasha, Keith Henson, Karl Hess, Carl Hewitt, Chris Hibbert, Tad Hogg, Bernardo Huberman, Gene Hughes, Ted Kaehler, Ken Kahn, Kirk Kelley, Scott Kim, Bill Kornfeld, David Lindbergh, Pattie Maes, Thomas Malone, John McCarthy, Diana Merry, Marvin Minsky, Ted Nelson, Gayle Pergamit, Alan Perlis, Chris Peterson, Harry Pyle, Jim Rauen, Jonathan Rees, Ramana Rao, Phil Salin, Allan Schiffman, Ehud Shapiro, Jeff Shrager, Randy Smith, Terry Stanley, Mark Stefik, Richard Steiger, Debbie Tatar, Eric Tribble, Dave Ungar, Steve Witham, Chee Yu, et Frank 'dybel.

Pour avoir fourni les idées qui ont inspiré ce travail, nous remercions Carl Hewitt, Marvin Minsky, Ted Nelson, Doug Lenat, Robert Axelrod, Richard Dawkins, et surtout Friedrich Hayek.

Pour avoir organisé cette recherche possible, nous remercions Jonathan Schmidt, Vic Poor, Charlie Smith, Mark Stefik, la technologie des points de données Centre, Institut de la prospective, l'intelligence artificielle du MIT Laboratoire, le Laboratoire d'intelligence artificielle de Stanford, et Centre de recherche Xerox Palo Alto.

Marque S. Miller dédie sa contribution à ces journaux à son oncle, Henri Ier. Boreen, qui l'a mis sur la voie de l'intelligence.

Références

Des articles référencés avec des chiffres romains peuvent être trouvés dans le présent volume: Huberman, Bernardo (dir. publ.), Ecology of Computation (Elsevier) Science Publishers/North-Holland, 1988).

Miller, Mark S., et Drexler, K. Eric, « Comparative Ecology: A Computational Perspective » ce volume.

II. Hewitt, Carl, « Les bureaux sont des systèmes ouverts », ce volume.

(III) Drexler, K. Eric, et Miller, Mark S., « Incitative Engineering for Computational Resource Management ”, ce volume.

Kahn, Kenneth et Miller, Mark S., « Language Design and Open Systems » (Conception linguistique et systèmes ouverts), ce volume.

Liskov, Barbara, « Guardians and Actions: Linguistic Support for Robust, Distributed Programs ”, ce volume.

Rashid, Richard, « De RIG à Accent à Mach: L'évolution d'un système d'exploitation de réseau", ce volume.

(VII) Stefik, Mark, « The Next Knowledge Moyenne », ce volume.

Malone, Thomas W., Fikes, R. E., et Howard, M. T., « Enterprise: A Market-Like Task Scheduler for Environnements informatiques distribués", ce volume.

Lenat, Douglas B., et Brown, John Seely, « Pourquoi AM et EURISKO Apparaissent au travail », ce volume.

1 Popper, Karl R., Objectif Connaissance: An Evolutionary Approach (Oxford University Press, Londres, 1972).

Hayek, Friedrich A., The Counter-Revolution de la science: Études sur l'abus de raison (Liberty Press, Indianapolis, 1979).

3 Clinger, Will, Foundations of Actor Semantique (MIT, Cambridge, MA, mai 1981) MIT AI-TR-633.

4 Agha, Gul, Acteurs: un modèle de cohérence Computation in Distributed Systems (MIT Press, Cambridge, MA, 1986). === Alchian, Armen A., et Allen, William R., University Economics (Wadsworth, Belmont, CA, 1968, Second Édition).

6 Hayek, Friedrich A., La Constitution Liberty (University of Chicago Press, Chicago, 1960), p. 156.

Smith, Adam, An Inquiry into the Nature and Causes de The Wealth of Nations (Université de Chicago Press, Chicago, 1976) p. 531.

8 Hayek, Friedrich A., « Concours en tant que Discovery Procedure ”, dans: New Studies in Philosophy, Politics, Economics and the History of Ideas (Université de Chicago Press, Chicago, 1978) p. 179 à 190.

9 Hayek, Friedrich A., « Economics and Knowledge ”, from: Economica, New Series (1937), vol. IV, p. 33 à 54; réimprimé dans: Hayek, Friedrich A. (dir. publ.), Individualisme et Ordonnance économique (University of Chicago Press, Chicago, 1948).

10 Hayek, Friedrich A., Nouvelles études en Philosophie, politique, économie et histoire des idées (Université) de Chicago Press, Chicago, 1978) p. 71.

11) Drexler, K. Eric, « Molecular Engineering: Une approche de la mise au point des capacités générales pour les matières moléculaires Manipulation ”, dans: Proceedings of the National Academy of Science USA (sept. 1981) Vol. 78, No.9, p.5275 à 528.

12. Drexler, K. Eric, « Rod Logic and Thermal Bruit dans le nanoordinateur moléculaire », dans: Actes du troisième Colloque international sur les molécules Electronic Devices (Elsevier Science Publishers / Hollande du Nord, 1987).

13) Drexler, K. Eric, moteurs de Création (Anchor Press / Doubleday, Garden City, New York, 1986).

Coase, R. H., « La nature de l'entreprise », dans : Economica, New Series (1937), Vol. IV, p. 386. En: Stigler, G. J., et Boulding, K. E. (éd.), Lectures en prix Théorie (Richard D. Irwin, Inc., Chicago, 1952).

15) Williamson, Oliver, Markets et Hiérarchies: Analyse et idées anti-imposition (Free Press, New) York, 1975).

16) Malone, Thomas W. Yates, JoAnne; et Benjamin, Robert I., « Electronic Markets and Electronic Hierarchies ». In: Communications de l'ACM (juin 1987) Vol.30, No. 6, p. 484 à 497.

17. Smith, Vernon L., « Experimental Methods in the Political Economy of Exchange ”, dans Science (10 octobre 1986) Vol.234, p. 167 à 173.

étoile, Spencer, « TRADER: A Knowledge-Based Système de négociation sur les marchés ”, dans: Economie et Artificiel Première Conférence internationale du renseignement (Aix-en-Provence, France, Septembre 1986).

19 Hoare, C.A.R., Communicating Sequential Processes (Prentice-Hall, New York, 1985).

20 INMOS Limited, Occam Programming Manuel (Prentice-Hall International, Londres, 1984).

21 Shapiro, Ehud, (dir. publ.), Concurrent Prolog: Collected Papers (MIT Press, Cambridge, MA, 1987) en presse.

Artsy, Yeshayahu et Livny, Miron, An Approche de la conception de systèmes informatiques entièrement ouverts (Université de Wisconsin / Madison, mars 1987) Informatique Technical Report 689 dollars.

[23) Nelson, Theodor, Literary Machines (publié par l'auteur, version 87.1, 1987, disponible dans le projet Xanadu, 8480 Fredricksburg no 8, San Antonio, TX 78229. Disponible en hypertexte sur Disque de Owl International, 14218 NE 21st St., Bellevue, WA 98007. 1981).

[24) Granovetter, Mark, « La force de la faiblesse Ties , dans American Journal of Sociology (1977) Vol. 78, p. 1360 à 1380.

Miller, Mark S., Bobrow, Daniel G., Tribble, Eric Dean, et Levy, Jacob, « Logical Secrets », dans : Shapiro, Ehud, (éd.), conjointement : Collected Papers (MIT Press, Cambridge, MA, 1987) dans la presse.

26 Hardin, Garrett, « The Tragedy of the Commons ”, dans: Science (13 décembre 1968) Vol. 162, pp. 123-1248.

27 Kurose, James F., Schwartz, Mischa, et Yemini, Yechiam, « A Microeconomic Approach to Decentralized Optimisation des politiques d'accès aux canaux dans les réseaux multi-accès ”, dans les domaines suivants: Actes de la cinquième Conférence internationale sur la répartition Computing Systems (IEEE, Denver CO, mai 1985), p. 70 à 77.

28. Goldberg, Adele et Robson, Dave, Smalltalk-80: The Language and its Implementation (Addison-Wesley, Lire la AMM, 1983).

Rivest, R., Shamir, A., et Adelman, L., « Méthode d'obtention de signatures numériques et de clé publique Cryptosystèmes », dans : Communications de l'ACM (février. 1978) Vol. 21, No. 2, p. 120 à 126.

30 Tanenbaum, Andrew S., et van Renesse, Robbert, « Distributed Operating Systems », dans : ACM Computing Enquêtes (ACM, New York, décembre 1985) Vol. 17, no 4, p. 419 à 470.

[31) Hayek, Friedrich A., Dénationalisation de Money (Institut des affaires économiques, Westminster, Londres, 1978, Deuxième édition).

32 Denning, Peter J., « The Working Set Model pour le comportement des programmes, dans: Communications de l'ACM (mai 1968) Vol 2, no 5, p. 323 à 333.

Artsy, Y., Chang, H-Y, et Finkel, R., Processus Migrate à Charlotte (Université du Wisconsin / Madison, Août 1986) Rapport technique sur les sciences informatiques no 6505.

Artsy, Y., et Finkel, R., « Simplicité, Efficacité et fonctionnalité dans la conception d'une migration de processus Mécanisme ”, dans : Actes de la deuxième Conférence israélienne sur Ingénierie des systèmes informatiques et des logiciels (IEEE, Tel-Aviv, Israel, Mai 1987) 3.1.2, p. 1 à 12.

[35) Cheriton, D.R., « The V Kernel: A Software Base for Distributed Systems ”, dans: IEEE Software (avril 1984) 1, 2, p. 19 à 42.

36 Leach, P.J., Levine, P.H., Douros, B.P., Hamilton, J. A., Nelson, D.L., et Stumph, B.L., « The Architecture of a Integrated Local Network ”, dans: IEEE Journal on Selected Areas in Communication (IEEE, novembre 1983) SAC-1, 5 842-857.

[37) Bishop, Peter B., Ordinateurs avec un grand Adresse postale Espace et ordures (MIT, Cambridge, AMM, mai 1977) MIT/LCS/TR-178.

38 Birrell, Andrew D. ; Levin, Roy; Needham, Roger M.; et Schroeder, Michael D., « Grapevine: an Exercise in Comptabilité distribuée ”, dans: Communications de l'ACM (avril) 1982) Vol. 25, No. 4.

[39) Terry, Douglas Brian, nom distribué Serveurs: Désignation et mise en cache dans les grands environnements distribués (Xerox) PARC, février 1985) CSL-85-1.

Barak, A., et Shiloh, A., « A Distributed Politique d'évaluation de la charge pour un multi-ordinateurs» dans: Expérience (septembre 1985) 15, p. 901 à 913.

41 Shapiro, Ehud, « Programmation systolique : A Paradigme pour la transformation parallèle ”, dans: Actes du Conférence internationale sur les systèmes informatiques de cinquième génération (1984) p. 458 à 471.

(42) Kahn, Kenneth, A Partial Evaluator of Lisp Écrit en un document de prologe écrit en Lisp destiné à être appliqué au Prolog et lui-même qui à son tour est destiné à être donné à lui-même ensemble avec le Prolog to produce un compilateur prolog (Université d'Uppsala, Suède, 1983) UPMAIL Tech. Rapport No. 17.

[43) Théarult, D., Issues in the Design and Application de la loi 2 (MIT AI Lab, Cambridge, MA., 1983) AI-TR-728.

[44) Winograd, Terry et Flores, Fernando, Comprendre les ordinateurs et la cognition (Ablex, Norwood, NJ, 1986).

[45) Witham, Steve, communication personnelle (1987).

Safra, S., et Shapiro, Ehud, « Meta-Interpreters For Real », dans : Proceedings, IFIP-86 (1986) p. 271 à 278.

Stamos, James W., A Large Object-Oriented Mémoire virtuelle: regroupement des stratégies, des mesures et des performances (Xerox PARC, Palo Alto, CA, mai 1982) SCG-82-2.

Stanley, Terry, communication personnelle (1987).

(49) Hamming, R. W., « One Man’s View of Computer Science », dans Ashenhurst, Robert L., et Graham, Susan, (éd.), Conférences du prix ACM Turing: Les vingt-neuvièmes années 1966-1985 (Addison-Wesley, Reading, AMM, 1987) p.216.

Cox, Brad J., Object Oriented Programmation: une approche évolutive (Addison-Wesley, Reading, MA, 1986) p. 26 à 28.

Jacobson, Gary, et Hillkirk, John, Xerox: American Samurai (Macmillan, New York, 1986).

(52) Chaum, David, « Design Concepts for Tamper Response Systems ”, dans: Advances in Cryptology: Proceedings of Crypto no 83 (Plenum Press, NY, 1984), p. 387 à 392.

53 Levy, Henry M., Ordinateur basé sur les capacités Systems (Digital Press, Bedford, MA, 1984).

54 Gehringer, Edward F., Capacité Architectures et petits objets (UMI Research Press, Ann Arbor, MI, 1982).

Organick, Elliott I., A Programmer’s View du système Intel 432 (McGraw-Hill, New York, 1983).

Rees, Jonathan A., et Adams, Norman I., IV, « T: a Dialect of Lisp or, Lambda: The Ultimate Software Tool ”, dans : Actes du Colloque ACM de 1982 sur Lisp et fonction Programmation (août 1982).

Conway, M.E., « Comment les comités inventent-ils? ”, in: Datamation (avril 1968), 14, 4, p. 28 à 31.

(58) Brooks, Frederick P., Jr., The Mythical Menu de l'homme (Addison-Wesley Publishing Company, Reading, AMM, 1975) p. 111.

Hayek, Friedrich A., « Cosmos and Taxis » Dans le domaine du , Vol. 1. Règlement et ordonnance, (University of Chicago Press, Chicago, 1973), p. 35 à 54.

Minsky, Marvin, La Société de l'esprit (Simon et Schuster, New York, 1986).

Kornfeld, William A., et Hewitt, Carl, « The Scientific Community Metaphor », dans: IEEE Transactions on Systems, Man, and Cybernetics (IEEE, 1981) SMC-11, p. 24 et 33.

[63) Mars, J. G., « Notes de bas de page pour l'organisation Change ”, dans : Administrative Science Quarterly (1981) 26, p. 563 à 577.

Barstow, David R., Shrobe, Howard E., et Sandewall, Erik, (éd.), environnements de programmation interactifs (McGraw-Hill, New York, 1984).

Xerox, Courrier: L'appel à la téléprocédure Protocole (Xerox Corp, Stamford CT, 1982) p. 5.

(66) (MIT Press, 1987) présentée sous la rubrique Masters Thèse.

Shrager, Jeff, et Klahr, David, « Apprentissage sans instruction sur un dispositif complexe : le paradigme et Observations ”, dans: Int. J. Études de machines homme (1986) 25, p. 153 à 18.

[68) Dawkins, Richard, The Selfish Gene (Oxford University Press, New York, 1976).

Axelrod, Robert, The Evolution of Coopération (Bilans, New York, 1984).

McDermott, Drew, « Critique of Pure Raison ”, pour figurer dans: Levesque, Hector, (dir. publ.), Calculmatique Renseignement (Conseil national de recherches du Canada, août ou Septembre, 1987).

Dijkstra, E. W., « Séquentiel coopérant Processus ”, dans Genuys, F., (dir. publ.), Programming Languages (Academic Press, New York, 1968), p. 43 à 112.

Demers, Alan, Greene, Dan, Hauser, Carl, Irlandais, Wes, Larson, John, Shenker, Scott, Sturgis, Howard, Swinehart, Dan, et Terry, Doug, « Epidemic Algorithms for Replicated Database Maintenance ”, dans: Actes du sixième Colloque annuel du MCA sur Principes de calcul distribué (ACM, Vancouver, British Columbia, Canada, 10-12 août 1987), p. 1 à 2012.

[73) Hanson, Robin, Vers l'hypertexte Publication: Questions et choix dans la conception de la base de données (projet disponible) Foresight Institute, Palo Alto, CA, 1987).

Stefik, Mark, Foster, Gregg, Bobrow, Daniel G., Lahn, Kenneth, Lanning, Stan et Suchman, Lucy, « Au-delà de la Tableau noir: support informatique pour la collaboration et la résolution de problèmes Réunions ”, dans : Communications de l'ACM (janvier 1987) Vol. 30, No 1, p. 32 à 47.

Hewitt, Carl, « Robert’s Rules of Orde r » (en presse).

[76) Malone, Thomas W., « Organizing Information Systèmes de traitement : parallèles entre organisations humaines et ordinateur Systems ", dans: zacharay, W., Robertson, S., et Black, J., (dir. publ.), Cognition, calcul et coopération (Ablex Publishing Corp., Norwood, NJ, 1986).

67 Lenat, Douglas B., « The Role of Heuristics dans Learning by Discovery: Three Case Studies ”, dans : Michalski, Ryszard S., Carbonell, Jaime G., et Mitchell, Tom M. (dir. publ.), Machine Apprentissage: une approche de l'intelligence artificielle (Tioga Publishing) Société, Palo Alto, CA, 1983), p. 243 à 306.

Harris, Jed, Yu, Chee, Harris, Britton, Scheduling basé sur le marché (1987) en préparation.

Sutherland, I.E., « A Futures Market in Computer Time ”, dans: Communications of the ACM (juin 1968) Volume 11, numéro 6.

[80) McClelland, James L., Rumelhart, David E., et PDP Research Group, Traitement distribué parallèle (MIT) Presse, Cambridge, MA, 1986) Volumes 1 et 2.

Hollande, John H., Holyoak, Keith J., Nisbett, Richard E., et Thagard, Paul R., Induction: Processes of Inference, Learning, and Discovery (MIT Press, Cambridge, MA, 1986).

82 Hollande, John H., Holyoak, Keith J., Nisbett, Richard E., et Thagard, Paul R., Induction: Processes of Inference, Learning, and Discovery (MIT Press, Cambridge, MA, 1986) p. 72 à 75, 79.

Barto, Andrew G., « Game Theoretic Cooperativity in Networks of Self-Easterned Units ”, dans: Denker, John S. (éd.), Neural Networks for Computing (American Institute of Physics, New York, 1986, p. 41 à 46.

(84) Minsky, Marvin, « Steps Toward Artificial Intelligence », dans Feigenbaum, Edward A., et Feldman, Julian, (dir. publ.), Ordinateurs et pensées (Robert E. Krieger, Malabar, Floride, 1981) p. 406 à 450.

(85) Minsky, Marvin, communication personnelle (1987).