Une explication simple de la simplicité. Chapitre 1: Théoriquement simple

Une explication simple de la simplicité


image
CAP avec des zones que nous devrons visiter pour répondre à la question PRINCIPALE.

Préface


J'ai souvent entendu des conseils: simplifiez-vous les choses.

Et que signifie simple? Quand nous disons que l'objet X est simple, quelles sont nos attentes pour X? Quand nous disons qu'une chose est plus facile qu'une autre - comment l'évaluer?

Ce qui est plus simple:
«Une petite phrase de cinq mots» ou le mot «désoxyribonucléique»?
"6 * 5" ou "481"?

Ou alors:
Vous disposez d'un écran de paramètres. Cinq d'entre eux concernent le calendrier, les cinq autres les notifications. Avez-vous besoin de créer des éléments séparés «calendrier» et «notification» dans le menu principal? Ou laisser les 10 points sur un seul écran? Qu'est-ce qui sera plus facile pour l'utilisateur?

Vous pouvez dire que c'est subjectif. Qu'elle est déterminée par un certain «sens de la simplicité», que pour une personne quelque chose peut être simple, et pour un autre complexe.

D'accord, alors dites-moi pourquoi l'enseignant passe du temps à expliquer quelque chose de plus facile? Pourquoi éditer le texte, en essayant de le rendre plus facile? Pourquoi les programmeurs passent-ils du temps à examiner le code pour essayer de trouver la solution la plus facile à comprendre et à développer?

Si la simplicité est en quelque sorte en corrélation avec notre évaluation, alors la meilleure stratégie est la persuasion. Faisons croire aux lecteurs que le texte est simple. Ou mes collègues, nous avons cru que notre décision n'était pas difficile.

Cela changera-t-il qualitativement leur interaction avec le résultat de notre travail?

Non.

Votre texte ne sera pas plus facile à lire car il est considéré comme simple. Il ne deviendra pas plus facile de travailler avec votre code, même si tout le monde autour de vous pense que sa complexité est la même que celle d'un tabouret.

Si on vous a dit lors d'une interview que la société a un code propre et une bonne documentation et que vous l'avez cru, cela n'affectera pas la simplicité de travail avec le code.
De plus, même si l'ensemble du département estime que le code est bien écrit et qu'il y a des quais, cela n'affectera pas non plus le résultat. Leur croyance en leur code peut être erronée.

Si le code était des spaghettis - ce seront des spaghettis. Si la «documentation» correspond aux commentaires du format «ici j'ai ajouté 2 chiffres» - le code n'a pas de documentation.
Et pas de désirs, de confiance, etc. n'aidera pas ici.

Cela ne fonctionne pas pour la même raison ( ru , en ) pour laquelle vous ne pouvez pas donner à 5 de vos amis 1 cupcake si vous n'avez que 2 boîtes de 2 cupcakes chacune. Même si vous méditez toute l'entreprise pendant un an 2 + 2 = 5, cela ne changera pas la triste situation des cupcakes.

Encore une fois. Il y a un objet, et certaines de ses caractéristiques peuvent vous faire penser ( ru ) qu'il est simple. Et si demain votre évaluation change et s'arrête à la marque «difficile», l'objet ne s'en souciera pas.

On peut conclure que la simplicité ou la complexité ne dépend pas de nos attentes. Au contraire, l'objet détermine quelle caractéristique nous lui donnerons.

Je voulais comprendre quel genre d'objet je m'attends à voir en réalité, si je suis convaincu ( ru ) que c'est simple. Et vice versa, quelles caractéristiques d'un objet réel me font penser que c'est simple.
Pourquoi? Eh bien, peut-être que cela me facilitera la vie?)

Si vous lisez pour la première fois
Statistiques
Temps de lecture: ~ 30 minutes.
Nombre de caractères: ~ 25k.

Comment lire un article
Général
Je n'ai aucune autorité à vos yeux. Je ne donne pas intentionnellement d'informations sur moi. J'aimerais que vous lisiez cet article comme s'il avait été écrit par un étudiant de première année. Dans un sens, ça l'est.

Si vous trouvez un moment incompréhensible ou controversé - écrivez-le. Cela vous aidera à améliorer cet article.

Et en aucun cas ne me croyez. Je ne veux pas que mes paroles vous convainquent de mon innocence. Je veux que leur signification vous convaincre de sa vérité.

À propos des conventions
  1. Table des matières. Chaque chapitre commencera par lui. Il répertorie brièvement les problèmes abordés dans le chapitre et fournit des liens pour naviguer vers les sous-sections pertinentes.
  2. Liens vers des ressources externes. Ils sont présentés en * mot ou phrase * (liens avec code laguage ) ou en liens réguliers. J'ai essayé de faire en sorte que vous ayez le choix, lisez une source russe ou anglaise. Malheureusement, je n'ai pas toujours réussi à trouver les deux. Cela sera particulièrement visible dans le deuxième chapitre. Runet est pauvre en informations pertinentes sur la neurobiologie.
  3. Spoiler "Brièvement". Il est situé immédiatement après le titre de la sous-section du chapitre. Son but est de simplifier le travail avec l'article si vous l'avez déjà lu. Vous pouvez l'utiliser pour lire rapidement un article. Mais attention! Premièrement, vous ne pouvez pas comprendre ce qui y est écrit sans lire la sous-section elle-même. Il s'agit d'une thèse condensée, et non du chemin ( ru , en ) vers elle. Deuxièmement, encore plus dangereux - il peut vous sembler que vous comprenez tout. Ce qui est une fausse compréhension et pourquoi elle survient sera expliqué dans les chapitres suivants.
  4. Spoiler "C'EST LE TEMPS DES MATHÉMATIQUES". Il est utilisé pour ne pas vous faire peur avec des calculs mathématiques. Il reproduit les informations qui auparavant étaient présentées sous forme de texte, mais de manière plus formelle.



Informations générales
À propos de la série
Une explication simple est simple - c'est une série d'articles unis par une question commune: "Qu'est-ce que" simple "d'un point de vue humain?"

Actuellement, 3 chapitres sont prévus:

  • Théoriquement simple - ce chapitre est consacré au libellé de la question et aux principales définitions qui lui sont associées. Tu es là.
  • Machine Ex Homo est un chapitre dans lequel nous regardons notre conscience, à partir du niveau comportemental supérieur et se terminant par des connexions neuronales dans notre cerveau. Le chapitre a été écrit et est en cours d'édition.
  • Juste lire - est dédié aux personnes qui lisent tous les modèles, que ce soit des schémas, du code, des graphiques, du texte. Ce sera le premier chapitre pratique de notre série, ici nous appliquerons nos connaissances et examinerons comment les informations doivent être structurées pour faciliter leur compréhension. Dirigez-vous dans le processus d'écriture.

Ce n'est pas une liste complète de questions auxquelles j'aimerais trouver une réponse. Mais je veux commencer par eux.

Un article séparé sera publié sur les raisons pour lesquelles je traite même ce problème. Disons simplement sur la motivation de l'auteur, et comment il voit cette série. Cet article sera écrit après les trois premiers chapitres.

Pourquoi cet article est-il apparu?
J'ai rencontré de telles phrases à plusieurs reprises: "Écrivez le texte plus facilement" ou "Rendez la décision plus facile".
Parfois, j'entendais le mot «juste» comme argument dans un différend: «Je l'ai fait parce que c'est plus facile!». Très souvent, les opposants ont essayé de prouver qu '«ils ont plus de facilité», et certains arguments étranges y ont conduit.

Mais quand j'ai demandé aux gens ce qui, à leur avis, signifie «simple», j'ai entendu:
"C'est subjectif." Ou "C'est un bon sens." Ou "Eh bien, pour chaque personne de différentes manières."
J'ai été troublé par le fait que des gens assez intelligents discutent depuis très longtemps d'une chose qu'ils ne peuvent pas déterminer avec précision et considérer comme subjective. Après tout, si c'est un arôme, comme les préférences musicales, pourquoi y consacrent-ils du temps? Je le répète, c'étaient des gens intelligents, et ils n'ont pas passé de temps sur des holivars sur leurs préférences musicales respectives.

J'y ai beaucoup réfléchi, et un an plus tard, une simple pensée m'est venue à l'esprit: que faire si la simplicité est une caractéristique d'un objet qui peut encore être mesurée? Cela pourrait résoudre tous les différends et gagner beaucoup de temps. Et envelopper ...

Pourquoi votre explication simple comprend-elle 3 chapitres? Ne pouvait pas être plus court?
Parce que la réalité est complexe. Et la complexité de cet article dépend directement de la complexité de cette partie de la réalité qu'il décrit.

Cette série est le résultat de milliers d'heures de recherche et de combinaison d'informations. Et aussi des centaines de milliers d'heures passées par des personnes dont j'ai utilisé le travail pour elle.

Vous passerez quelques heures à lire toute la série. Une dizaine, pour être honnête, vous suivrez tous les liens.

J'ai réduit le temps et les efforts que vous allez consacrer à obtenir des centaines de fois la réponse à notre question. Et vous a épargné le temps nécessaire pour le régler correctement.

Je ne sais pas si c'est la meilleure explication possible. Mon travail n'est pas encore terminé. Peut-être que dans le processus, je comprendrai comment l'améliorer. Pour le moment, c'est l'explication la plus simple que j'ai.


Chapitre 1. Théoriquement simple


Dans ce chapitre, nous examinerons les sujets suivants:


À la fin du chapitre, nous parlerons un peu du rasoir d'Occam ( Blade Runner ). Un article sur la simplicité serait étrange sans mentionner ce principe.

1.1 Séquence de questions


Brièvement
Les questions qui ne limitent pas les réponses possibles sont inutiles.
La caractéristique «simple» peut avoir deux significations:

1) élémentaire
2) Simple pour une action

Nous sommes intéressés par le second.

Notre question suivante: comment évaluer la complexité d'une action et comment la relier à un objet?

Notre recherche commence par une question. Poser une question correctement est très important. Une petite digression:

- D'accord, Deep Thought, quelle est la PRINCIPALE CONDITION DE SIMPLICITÉ?
- J'ai besoin d'y penser.
...
...
N millions d'années plus tard ...
- < 42.

// Basé sur un beau livre

Nous avons une réponse, mais elle ne donne rien. Toutes les informations le concernant sont contenues dans la question, mais la question n'était pas trop précise. Nous ne pouvons pas prouver que < 42 - vraiment la condition principale et ne peut pas montrer le contraire.

La question devrait limiter la portée des réponses possibles.

"Qu'est-ce qui est simple?" - Pas une question très précise. Clarifions cela. Au début de l'article, nous avons déjà fait une partie de ce chemin:

Quand on dit que l'objet X est simple, qu'attend-on de lui?

Selon mes observations, il existe deux cas principaux:

  1. X est un objet qui ne se décompose pas en ses composants. Ici, le mot «simple» peut être remplacé par le mot «élémentaire».
    image
    Ceci est une brique. Et, d'une certaine manière, il est simple.
  2. X est simple pour effectuer l'action dont nous avons besoin avec lui. Par exemple, un canapé est simple si nous voulons nous allonger dessus et compliqué si nous devons le monter au neuvième étage.

Le cas où l'objet est élémentaire est compréhensible. Mais que se passe-t-il si nous nous intéressons à la complexité dans le cadre de l'action?

Réfléchissons-y. Nous effectuons des actions avec l'objet.

Il y a trois entités principales dans cette phrase:

  • Actions - une description de ce qui se passe.
  • Interprètes d'actions - nous nous cachons sous le mot.
  • Les objets sont ce avec quoi l'action se déroule.

Ensuite, nous nous intéressons aux questions suivantes:

  • Comment évaluer la simplicité d'une action en fonction de l'objet avec lequel elle est réalisée?
  • Quelle est la relation entre l'action et son exécuteur testamentaire?

Nous y répondrons ci-dessous.

1.2 Facilité d'utilisation


Brièvement
Nous agissons par analogie avec la complexité algorithmique.

La complexité de notre action est la somme des complexités des actions qui y sont investies.

La séquence d'actions est appelée un algorithme.

L'action a un résultat - il s'agit d'un changement de l'état du système dans lequel l'action a été effectuée.

Les actions et les objets peuvent être interconnectés en utilisant le concept d'une interface. Une interface est un objet qui stocke des informations sur les actions possibles avec un objet qui l'implémente.

Contrairement à la complexité algorithmique, nous ne pouvons pas simplement trouver des opérations élémentaires, et nous devrons considérer l'exécutant de nos actions.

Notre question suivante est quel est l'impact de l'interprète sur les actions?

Regardons l'action.

La simplicité d'action est quelque chose qui dépend inversement de sa complexité. Plus l'action est complexe, moins elle est simple - c'est évident. Nous arrivons à la question suivante:

Comment déterminer la complexité de l'action?


Que pouvons-nous faire avec l'action? Nous pouvons le décomposer en une séquence d'autres! L'action «lire l'article» peut être divisée en: «lire le premier paragraphe», «lire le deuxième», etc. Ils se décomposent à leur tour en «lisant la première phrase», «lisant la seconde» ...

image

De cette façon, nous arrivons à des actions dont la différence de complexité ne sera pas importante pour nous et ne dépendra pas de l'objet avec lequel elle est effectuée (par exemple, lire une lettre). Nous appellerons ces actions élémentaires.

Ensuite, la complexité de l'action pour un objet particulier peut être mesurée dans les actions élémentaires dans lesquelles il est divisé.

Les actions sont équivalentes lorsqu'elles sont divisées en la même séquence d'actions.

Quoi d'autre caractérise l'action?

Algorithme


Description de la séquence d'actions qui constituent une autre action, je l'appellerai l'algorithme ( ru , en ) .

L'algorithme peut être décrit de manière générique, par exemple:
Lecture: lisez des phrases jusqu'à épuisement du texte.
Sous cette forme, la lecture est applicable à de nombreux textes.

Cependant, comme vous le comprenez, le nombre d'actions de «lecture de phrases» dépendra du nombre de phrases dans le texte.

Résultat


Les actions sont effectuées pour une raison, elles mènent à quelque chose. Alors laissez nos actions porter leurs fruits!

Le résultat est un changement de l'état du système dans lequel l'action s'est produite. Vous avez appuyé sur l'interrupteur, et sa transition vers l'état «marche» et la lumière qui s'est allumée dans la cuisine est le résultat de cette action. Vous lisez un mot et le résultat est un changement dans l'état de votre cerveau.

Différentes actions peuvent conduire au même résultat.

image

Communication avec les objets


Revenons aux objets. Comme nous l'avons dit, vous pouvez effectuer différentes actions avec eux. Nous avons besoin d'un moyen de comprendre pour quelles actions telle ou telle entité est «prévue».

Je vais commencer par un exemple.

"Et comment faire glisser cette valise?"
- Il a un stylo sur le côté!

La poignée est une bande de cuir à l'extérieur de la valise, qui est clouée avec des rivets. Mais dans ce cas, nous ne nous en soucions pas. Nous craignons qu'il y ait un objet sur la valise auquel vous pouvez vous accrocher.

Tous ces objets seront appelés poignées. Ils peuvent être à la tasse, à la porte, à la valise ou au seau.

image

Nous sommes arrivés à la conclusion que nous avons deux descriptions de plumes dans l'exemple:

  1. Comme des bandes de rivets en cuir clouées sur une valise.
  2. Comme concept pour un sujet à aborder.

Le premier est une description de l'implémentation ( en ) .

Le second est la description de l'interface.

Une interface est un objet qui stocke des informations sur la façon dont vous pouvez interagir avec un objet qui le met en œuvre.

Pourquoi sont-ils nécessaires? C'est simple: le plus souvent, nous ne sommes pas intéressés par la façon dont un objet est implémenté.
Lorsque nous voulons allumer la lumière, nous recherchons un interrupteur, et peu importe comment cela fonctionne, il est seulement important pour nous que nous puissions activer / désactiver son état.
Quand nous voyons un bouton, nous savons déjà qu'il peut être cliqué.
Quand on nous dit qu'il y a un stylo quelque part - nous savons déjà que vous pouvez le prendre.
Et c'est très pratique.

Résumé


Une action est une séquence d'autres actions qui définissent son algorithme. Le résultat de l'action est une sorte de changement de système.

La complexité d'une action est égale au nombre d'actions élémentaires de son algorithme pour un objet particulier.

La relation entre les objets et les actions détermine l'interface de l'objet. Il stocke des informations sur les actions pouvant être effectuées avec l'objet.

Notre prochaine question:
Quelle est la relation entre l'action et son exécuteur testamentaire?

1.3 Subjectivité objective


Brièvement
Afin d'évaluer correctement la complexité d'un objet dans une situation avec différents exécuteurs d'actions, nous pouvons définir nos actions pour chaque artiste ou groupe d'exécuteurs spécifique.

Notre prochaine question est de savoir comment calculer la complexité maintenant?

Vous pouvez raisonnablement remarquer:

«Mais si vous effectuez les mêmes actions, les résultats peuvent être différents! Si un professeur de physique peut rapidement lire un article sur la théorie des cordes et tout comprendre, alors je ne parviendrai à rien avec la même approche. Et pour obtenir un résultat similaire, je dois chercher des définitions à travers le mot, lire d'autres articles et passer beaucoup plus d'action. »

C'est un bon point. J'ai une réponse.

Comme toute tâche, la nôtre a des conditions initiales. Si vous les modifiez, vous modifiez la tâche elle-même. Et cela conduit au fait que sa mise en œuvre nécessite différentes actions.

Vous lisez un article. Supposons que vous lisiez quelques pages et que vous la mettiez de côté. Maintenant, pour que l'article soit lu, vous devez dépenser moins d'action. Mais la complexité de l'article lui-même en a-t-elle changé? Non. L'action que vous effectuerez avec lui a changé. C'était: "lire l'article", c'est devenu: "feuilleter l'article jusqu'au moment où j'ai fini, et lire jusqu'à la fin."

Que devons-nous faire des actions? Nous fixerons le résultat souhaité. Comme nous nous en souvenons, il peut être atteint de différentes manières.

De plus, nous pouvons diviser les interprètes en approximativement les mêmes groupes. Il y a un nombre limité de tels groupes, si nous n'avons pas un nombre infini d'artistes.

Maintenant, pour chaque groupe, nous décrivons les actions qui le mèneront au résultat souhaité.

Nous avons obtenu un ensemble d'actions pour chacun des groupes d'artistes. Mais que faire maintenant de la complexité?

1.4 Probablement juste


Brièvement
Dans une situation avec plusieurs interprètes, nous pouvons calculer l'attente mathématique de la complexité de l'objet. Pour ce faire, vous devez évaluer la probabilité que des actions soient exécutées par différents intervenants.

Théorème de Bayes ( ru , en ) .

La question suivante: comment décrire les objets avec lesquels nous travaillons?

Nous avons un ensemble d'actions. Chacun d'eux appartient à un certain groupe d'artistes. Nous savons calculer la complexité de chacune de ces actions pour chaque objet spécifique.

Mais que se passe-t-il si nous essayons de définir la probabilité que l'artiste entre dans l'un des groupes?
Le problème se transforme en tâche théorique classique.

Nous avons l'ampleur de la complexité de l'action.Nous avons la probabilité d'effectuer chacune des actions par une personne au hasard.

Nous pouvons trouver la «moyenne» de notre complexité. C'est ce que l'on appelle l'attente mathématique ( ru ) . Pour ce faire, nous devons multiplier chaque complexité de l'action par l'objet par la probabilité de son occurrence.

D'où proviennent ces probabilités et comment répartir les artistes en groupes si vous ne savez pas encore qui effectuera spécifiquement les actions avec l'objet? Bonne question!

Son examen dépasse le cadre de notre article, mais je donnerai un exemple intéressant à mon avis.

Tu es un auteur. Et votre tâche est d'écrire un article sur un site qui comporte des sections thématiques. Lorsque vous postez un article, il apparaîtra dans le fil général et dans le fil de sa «section». Les sections ont des abonnés, elles représentent un certain pourcentage de l'audience du site. Le flux partagé est montré à tout le monde. Nous supposons que ceux qui sont abonnés à une section comprennent son sujet, mais pas ceux signés - non.
Que notre article soit sur la physique. Nous avons analysé l'audience et nous savons que 3% de l'audience du site est abonné à la rubrique «physique». Nous avons appris que la probabilité qu'un abonné à cette section en saisisse un article est de 80%. Nous avons également appris que la probabilité de consulter un article du flux général est de 5%.

Qui est notre lecteur potentiel et devrions-nous «optimiser» l'article pour une personne qui n'est pas abonnée à la section «physique»? En d'autres termes, quelle est la probabilité que notre article soit lu par une personne versée en physique?

Donc, attention, cette probabilité est ... Environ 33%.

Un peu plus des deux tiers de nos lecteurs potentiels ne comprennent pas la physique, et nous devons en tenir compte.

Comment est-ce arrivé? En bref: une forte probabilité de visiter un article par une personne versée en physique est compensée par leur petit nombre. Une petite chance de visiter un article d'un flux commun commence à jouer un rôle important dans notre évaluation. Vous voulez en savoir plus? Voici un lien vers un bon article sur le théorème de Bayes ( ru , en ) .
Si vous souhaitez vérifier:

C'EST LE TEMPS DES MATHÉMATIQUES:
3% , 80% . — 0.03*0.8 = 0.024 = 2.4%.

, - = . «» , . , = 0.05*0.03*0.2 = 0.0003, 0.03%.

5% , 4.97%

. (2.4% + 0.03%) .
(2.4+0.03)/(2.4+4.97+0.03) = 0.328.
: ~33%

Nous avons parlé des actions et de ceux qui les exécutent. Il est temps de passer à la dernière question.
Nous avons souvent utilisé le mot objet, mais il ne nous donne aucune information à ce sujet. Nous avons besoin d'une description, suffisamment abstraite pour que nous puissions l'appliquer à de nombreuses entités, et suffisamment informative pour pouvoir travailler avec.

Comment décrire les objets avec lesquels nous travaillons?

1.5 Systématisation de la modélisation


Brièvement
.

— , .

— , ( ).

J'ai décidé d'essayer de décrire de manière générique des textes, des tableaux, des diagrammes ... etc. Mais comment faire?

Prenons un peu de recul et voyons comment leur «création» se produit, peut-être que cela nous aidera.

Nous écrivons le texte. Nous avons une certaine idée, nous la formulons en mots et l'écrivons. De plus, l'idée peut ne pas être uniquement sous la forme d'autres mots. Nous pouvons décrire une image, de la musique, des objets mathématiques.

J'écris du code. J'ai des exigences que je traduis en code. Ils peuvent être exprimés verbalement ou représenter une image, par exemple un croquis de l'interface.
Nous faisons un diagramme. Nous avons quelques objets, les relations entre lesquelles nous décrivons avec ce schéma.

Il y a quelque chose en commun dans ces processus. Nous avons une sorte de système. Nous le traduisons dans un autre système, sans nécessairement utiliser les mêmes «termes».

Il me semble que le mot «modélisation» convient pour décrire ce processus.

Ainsi, un modèle est un système qui décrit un autre système utilisant la notation donnée (termes).

Cette définition conduit à une question raisonnable:

Qu'est-ce qu'un système?


Un système est une collection de certains composants. Il est défini par l'ensemble de leurs états possibles et de leur état actuel. Composants du système J'appellerai souvent des objets.
Ils peuvent être des éléments (quelque chose de prédéfini) et d'autres systèmes constitués de ces éléments. Il existe encore des choses telles que les connexions - elles apparaissent lorsque nous voulons limiter ou déterminer les états possibles d'un objet en fonction des autres.

Un exemple:
Il y a un système de 2 pièces. L'un d'eux est à l'état «aigle», l'autre à l'état «queues».
«Eagle» et «tails» sont des éléments de notre système.

Une pièce est un sous-système composé des éléments «têtes» et «queues» et peut se trouver dans l'un de ces états. Pour la première pièce:

image

Supposons que nous ne puissions pas retourner les pièces et ainsi apporter des modifications au système. Dans ce cas, notre système peut être décrit comme:

image

Si nous pouvons lancer des pièces, alors notre système est décrit comme:

image

Il existe des dépendances entre certains systèmes. Supposons que l'état de la deuxième pièce ne puisse pas être égal à l'état de la première.

Ensuite, l'ensemble des états possibles de la pièce 2, compte tenu de notre restriction, correspond à tous les états possibles précédents, à l'exception de celui dans lequel se trouve la pièce 1.

image

Dans ce cas, nous pouvons dire que l'état de la pièce 2 détermine l'état de la pièce 1.

Voyons maintenant ce qui se passe si nous modifions l'ensemble des états possibles des pièces en y ajoutant un «bord».

Nous pouvons faire toutes les paires pour les états des pièces 1 et 2.

image

Dans ce cas, nous parlons de limiter les états possibles de la pièce 2.

MISE À JOUR:


J'ai créé une implémentation d'un exemple de pièce en Java. Voici le référentiel . De plus, il montre comment calculer la complexité si vous lancez une pièce pour une action élémentaire.

C'EST LE TEMPS DES MATHÉMATIQUES:
S — .
E(S) — .
V — .
e — .
: S=e=E(S)={E(S1),E(S2),E(Sn)},SkS
Si Sk — , , .. .
: S=(V,e),V={E1(S)En(S)},eV .
.

, , , .

:
\ {S_j ... S_k \}\ {S_j ... S_k \} dont l'état détermine l'ensemble des états possibles Si .
Prenez le produit cartésien X=V(Sj)...V(Sk) - nous obtenons beaucoup d'ensembles ordonnés d'états x=(En(Sj),...,Em(Sk)) .
Mettez Y=V(Si),y=Et(Si) .
Prenez beaucoup de paires ordonnées a=(x,y) inXY .
Si pour le même x sont les mêmes y - condition déterminée x .
Si pour le même x divers y , alors la condition est limitée.

PS
Soit dit en passant, vous pouvez prouver que n'ayant que deux éléments (0 et 1, par exemple), vous pouvez décrire n'importe quel système dont le nombre d'objets est dénombrable. Pourvu que vous puissiez créer des séquences d'éléments de façon illimitée. À mon avis, c'est un fait intéressant.

Je me suis inspiré d'articles sur la théorie des systèmes ( ru ) et les automates abstraits ( ru ) . Cette version de la description mathématique du concept de «système» est légèrement plus courte que ce que j'ai trouvé.

Retour aux modèles


Nous appelons le modèle un autre système, qui est la première cartographie. En général, il peut être construit à partir d'autres éléments. Le modèle du système est la carte, le système lui-même est le territoire ( en ) . Personne ne se soucie de construire des modèles d'autres modèles. Vous pouvez dessiner une carte de la carte ( en ) .

Essayons de construire des modèles.

Commençons par les classiques: la boîte noire.
Vous avez: "entrée", "sortie" et boîte. Vous indiquez les composants que vous souhaitez modifier afin d'obtenir le résultat comme «entrée», les composants représentant le résultat comme «sortie» et le reste comme une boîte noire. Un tel modèle ne décrit pas les dépendances internes du système, mais les masque. Nous ne savons pas comment le résultat est obtenu.

image

Cette approche est souvent utilisée dans les cas où nous voulons étudier le fonctionnement d'un système, mais en même temps nous ne pouvons pas «l'ouvrir». Par exemple, en psychologie. Nous donnons des tests aux gens, ils les résolvent. Nous ne savons pas ce qui se passe dans la tête des gens en ce moment. Mais, après avoir collecté suffisamment de données, vous pouvez décrire la boîte de l'appareil, qui donnera des résultats similaires. Dans la partie Machine Ex Homo, nous examinons cela plus en détail.

Nous allons maintenant construire un modèle qui affiche l'ensemble complet des composants et leurs états possibles.

Vous vivez dans la Grèce antique. Votre voisin Zeno ( ru ) vous a déjà eu. Ce fils Aidov s'introduit dans votre maison tous les soirs avec un autre mystère qui brise le cerveau ( ru ) , et après cela, vous passez une nuit blanche à réfléchir. Vous devez dormir et pour cela, vous devez le fermer au moins pendant quelques jours.

La dernière fois, il a eu recours à une histoire d'Achille courant après une tortue. Pendant cette nuit, vos yeux sont tombés sur l'un des seaux. Une pensée intéressante m'est venue: examiner son aporie plus en détail, à l'aide de seaux et de pierres.

Vous souhaitez vous permettre de connaître la position d'Achille et de la tortue par rapport au point de départ, à chaque pas de la tortue. Nous avons: une tortue qui marche, Achille, qui est 10 fois plus rapide qu'une tortue. Et leurs positions initiales: 1000 pas et 0 pas.

Notre modèle ne sait pas encore représenter les nombres. Et là-dessus, il est absolument impossible de distinguer où est Achille, où est la tortue, où est le chemin.

La représentation des nombres naturels est simple : prenez un seau, mettez le nombre de pierres égal à ce nombre.

Nous pouvons maintenant décrire la vitesse et le chemin. Dans un seau qui indique la vitesse d'Achille, il y aura 10 pierres. Dans le seau pour la vitesse de la tortue - une pierre. Passons maintenant aux «seaux du chemin» . Nous mettons mille pierres dans la tortue, laissons Achille vide. Lorsque la tortue fait un pas, nous déplaçons les pierres de la vitesse au chemin. Vous avez terminé?

Pas encore. Nous n'avons pas de peinture pour signer les seaux. Seulement des pierres. Comment gérer ça?

Alternativement, nous pouvons mettre le seau de tortue «vitesse» à droite de son «seau de chemin». Faites de même avec les seaux d'Achille. Et repoussez les seaux de la tortue. Maintenant, nous savons que dans la combinaison «deux godets» - le godet droit est à grande vitesse et celui gauche se déplace.

Vous regardez deux groupes de deux seaux. Afin de savoir lequel des groupes d'Achille vous devez monter, regardez dans un seau, comptez les pierres qu'il contient, rappelez-vous que la vitesse d'Achille est de 10 pas et concluez que les seaux appartiennent à Achille. Et si nous voulons faire quelques changements et rendre la vitesse d'Achille égale à la vitesse d'une tortue? Ensuite, notre façon de vérifier Achille cesse généralement de fonctionner!

Par conséquent, devant des seaux de vitesse et de chemin, nous mettrons un «seau de nom». Maintenant, c'est devenu le plus à droite. Et laissez notre règle ressembler à ceci: si le seau du nom est vide, alors les seaux qui le suivent sont des tortues. Et s'il y a une pierre, alors ce groupe de seaux signifie Achille.

image
Je n'ai pas dessiné de pierres en S, mais je pense qu'il est clair que pour la première étape le seau d'Achille est vide, et la tortue contient 1000 pierres.

Vous vous réjouissez. Maintenant, Zenon devra réfléchir sérieusement à la raison pour laquelle il a décidé qu'il pourrait continuer à jamais le processus de division de la pierre. Au moins, vous l'espérez vraiment.
Malheureusement, cela ne vous a pas aidé à améliorer votre sommeil. Zeno n'est vraiment pas venu le lendemain soir, mais maintenant vous-même êtes plongé dans vos pensées. Le moment viendra-t-il où les pierres ne pourront pas être divisées ( ru ) ?

Regardez, pour chaque étape, nous avons obtenu une sorte d'état de chacun des objets que nous considérons. La position d'Achille correspond à un seau, les tortues à l'autre. Pour les vitesses, la situation est similaire. Notre modèle décrit entièrement tous les états possibles de tous les objets du système simulé.

Le texte est également un modèle du système. Les termes dans ce cas sont des mots. Ils sont définis par leur signification, ou la multitude de significations, qui est limitée selon le contexte.
Nos sensations sont aussi un modèle que notre cerveau crée à partir d'informations venant de l'extérieur.

En bref, vous rencontrez des modèles tout le temps.

Vous rappelez-vous toujours pourquoi nous avons tous fait cela? Juste au cas où: nous avons donné une définition du modèle, puis calculer sa complexité. Le moment est venu, voyons comment cela peut être appliqué.

Vous êtes un designer UX. Votre tâche: créer la page des paramètres de l'application. Vous savez qu'ils ne changeront pas à l'avenir. Il y en a dix au total: cinq paramètres graphiques et cinq paramètres de notification.

Vous pouvez les laisser tous sur un seul écran. Vous avez également eu l'idée que vous pouvez créer des éléments de «planification» et de «notifications» sur le premier écran et passer à l'écran correspondant avec cinq paramètres.

image

Supposons que notre utilisateur ait une mémoire très faible et l'habitude de lire de haut en bas. Mais en même temps, il est néanmoins assez intelligent pour ne pas se tromper dans la section, dans le cas où nous avons regroupé les options. Il ne lit pas les noms des écrans et va directement aux éléments du menu.

Nous n'avons que 10 paramètres, ils peuvent être affichés à l'écran avec une liste, et l'utilisateur pousse simplement l'élément souhaité. Nous pensons que l'utilisateur n'a pas besoin de faire défiler la feuille dans ce cas. En revanche, si l'utilisateur a besoin de réglages dès la fin, il sera plus facile pour lui de les trouver, car il n'aura pas à lire la liste entière, il pourra sauter la moitié des points dont il n'a pas besoin.

Quel modèle nous donnera une interaction plus simple?

Actions qu'un utilisateur peut effectuer avec un élément de liste: lire et piquer dedans. Traduit dans la langue de l'interface: l'élément de menu a les propriétés de lisibilité et de pokeability. Tous les points sont courts, donc la différence dans la difficulté de les lire est négligée. Nous supposons que les actions «poke» et «read» sont élémentaires dans notre contexte. Leur complexité est de 1.

Nous nous attendons à ce que l'utilisateur soit également susceptible d'exiger l'un des éléments. Cela n'a aucun sens de les reprendre.

Bien sûr, vous avez déjà une sorte de pressentiment sur la réponse. Je vous suggère de l'écrire, ainsi que de noter que votre réponse est correcte. Par exemple, sur une échelle de 1 à 10, où 10 est absolument sûr, 1 n'est pas sûr du tout. Vous aurez besoin de ces données pour les comparer avec le résultat. Sous le spoiler "Décision", il y aura une enquête. Malheureusement, le habr ne permet pas de faire des sondages n'importe où dans le texte, donc le lien mène à Google Forms. Là, vous pouvez le parcourir et voir des statistiques sur les résultats globaux.

Je vous conseille de prendre un stylo, un morceau de papier, d'ouvrir la calculatrice et de calculer vous-même la difficulté. Et seulement alors ouvrez le spoiler.

Solution:
Si l'utilisateur a besoin du deuxième élément, l'algorithme de ses actions ressemble à ceci:
Lisez le premier paragraphe -> lisez le deuxième -> piquez votre doigt, et la difficulté, respectivement: 2 + 1 = 3.
Pour trouver la complexité moyenne, nous devons trouver la complexité de la navigation pour chacun des éléments, les ajouter et diviser par 10.
Pour les éléments sur un écran: ((1 + 1) + (2 + 1) + (3 + 1) + (4 + 1) + (5 + 1) + (6 + 1) + (7 + 1) + ( 8 + 1) + (9 + 1) + (10 + 1)) / 10 = 6,5
Passons maintenant à la complexité de l'option de sous-menu. Afin de trouver l'option souhaitée, nous devons d'abord sélectionner la section souhaitée et la pousser. Pour le premier élément, les actions ressemblent à ceci:
Lisez le nom de la première section -> poke -> lisez le nom du premier paragraphe -> poke.
Difficulté 4.
Calculons honnêtement:
((2 + 1 + 1) + (2 + 2 + 1) + (2 + 3 + 1) + (2 + 4 + 1) + (2 + 5 + 1) + (3 + 1 + 1) + ( 3 + 2 + 1) + (3 + 3 + 1) + (3 + 4 + 1) + (3 + 5 + 1)) / 10 = (4 + 5 + 6 + 7 + 8 + 5 + 6 + 7 + 8 + 9) / 10 = 6,5

Sont-ils les mêmes?!

...
...
...

Honnêtement, quand j'ai proposé cet exemple, je m'attendais à une réponse différente. Il me semblait que la méthode de regroupement dans cette tâche est meilleure.

Comme je l'ai promis, vous pouvez participer à l' enquête et voir les statistiques sur les réponses. Et n'utilisez pas le fait que vous pouvez envoyer plusieurs réponses. Je ne veux pas vous forcer à vous connecter à votre compte Google afin qu'il soit plus pratique pour vous de répondre et de regarder le résultat, et en échange, je vous demande de ne pas interférer avec la collecte de statistiques.

Donc, si nous laissons l'exemple identique, mais considérons un nombre différent de points? 4 et 4, 3 et 3, 6 et 6?

Encore une fois, je vous suggère de le faire vous-même. Astuce: lisez la somme de la progression arithmétique et faites une équation, en fonction du nombre total de points.

Ci-dessous est juste la réponse, donc si vous voulez savoir comment cela s'est passé, vous devez travailler un peu.

La réponse est:
Si vous avez 5 points dans chaque section, les difficultés seront égales.
Avec 6 et plus, l'option split gagnera.
Avec 4 ou moins, l'option d'une liste gagnera.


J'ai inséré cet exemple dans l'article au stade de l'édition finale. Il était important pour moi de résumer ce dont nous parlions. Liez les informations des chapitres précédents de manière compréhensible. Pour que vous puissiez facilement l'imaginer et essayer d'utiliser ce dont nous avons parlé.

Je me trompais. Quand j'ai écrit cet exemple, j'ai pensé que je savais quelle serait la réponse. Et maintenant, je suis assez surpris. Non, ce n'est pas vrai. Quand j'ai honnêtement effectué tous les calculs, le résultat m'a frappé très fort. Dans ma tête, quelque chose comme ce qui suit s'est produit:

- * À l'unisson * NOUS SOMMES ERRÉS?!

Et envelopper ...
- * Voix 1 * Quoi? Comment ça! Moi, ta mère, développeur d'applications mobiles! Et à en juger par les critiques de mes collègues, je suis un bon développeur! Ma compétence en la matière ne me fait pas beaucoup de doute!

- * Voix 2 * Eh bien, oui. Et alors quoi?

- * Voice 1 * Oui, je vois ces applications jour et nuit. J'ai lu un tas de directives. J'ai déjà fait des centaines de ces listes. J'ai suffisamment de qualifications dans mon domaine pour corriger les erreurs de nos designers!

- * Voix 2 * Ouais, et puis quoi?

- * Voix 1 * J'ai écrit ce putain d'article! La majeure partie de mon travail consiste à faciliter l'interaction d'autres personnes avec mes décisions! Je fais ça depuis des années! Non seulement pendant les heures de travail, mais presque tout est gratuit. Mon expérience a depuis longtemps dépassé les 10 000 heures banales!

- * Voice 2 * Boy, je suis toi aussi. Vous n'avez rien dit de nouveau, allez droit au but.

- * Voix 1 * Je conclus que mon exemple est synthétique. Elle ne reflète pas la réalité, tout y sera différent, et donc la réponse, que j'ai suggérée en premier, sera correcte. Mon expérience m'a permis de prendre en compte bien plus que dans cet exemple.

* Les sirènes et les lampes rouges s'allument *

- * Voix des haut-parleurs * La partie de votre conscience que nous avons configurée pour détecter les schémas de pensée erronés est en train de parler. Erreurs constatées: effet de l'excès de confiance , confirmation du biais , perception sélective . Le modèle d' appel à l'autorité a été reconnu, mais cette information est toujours en cours de vérification. En raison du danger de tromperie, vous devez respirer plus profondément et boire du thé.

- * Voix 1 * Pas de tromperie! Vous savez que tout ce que j'ai dit nous paraît vrai!

- * Voice 2 * Et vous savez qu'il y a une grande différence entre la réalité et votre opinion sur ce qu'elle devrait être.

- * Voix 1 * Eh bien, bliiiiiin, encore une fois ces conférences.

- * Voice 2 * Imaginez que vous croyiez que les gens savent voler. Cela vous sauvera-t-il en sautant du toit?

- * Voix 1 * Je ne peux pas. Je vois que les autres ne volent pas, donc je ne ferai pas de conclusion aussi idiote à mon sujet. Et en général, vous hyperbolisez.

- * Voice 2 * Vous êtes fou. Ou vous avez été drogué. Ou ils vous ont mis un costume idéal de réalité virtuelle, vous y avez passé 5 ans et tous les gens ont volé, vous avez vous-même su voler, votre cerveau s'est adapté et "sait" comment le faire. Nos pensées, nos sensations, nos attentes, et généralement nous sommes l'état de notre cerveau. C'est du moins notre hypothèse de travail. Et nous savons qu'il y a des situations bien plus étranges que la confiance dans la possibilité d'un vol. Rappelez-vous le livre "L'homme qui a pris sa femme pour un chapeau".

- * Voix 1 * D'accord, les cerveaux peuvent vraiment échouer, mais dans votre exemple je vais vraiment tomber, même si je pense en vol que je vole. Si j'ai assez de temps, je remarquerai que je vole dans le mauvais sens, mais il sera trop tard.

- * Voix 2 * Ok, et maintenant revenons au débriefing. Hé, calembour cool. Vous avez trouvé cet exemple. Vous connaissiez ses règles. Vous saviez que vous l'aviez grandement simplifié, par rapport à la réalité. Vous saviez comment le résoudre. Et vous avez fait une erreur dans votre hypothèse initiale.

- * Voix 1 * Ce n'est pas moi! J'ai fait un choix intuitivement, tu sais comment ça marche!

- * Voice 2 * Et vous savez que souvent cela ne fonctionne pas correctement. Et voici une autre preuve pour vous.

- * Voix 1 * Et mon dernier argument? Après tout, il s'agit bien d'une approximation, et en réalité, tout sera différent.

- * Voice 2 * Cet argument est vrai. En réalité, tout sera différent. Il ne s'ensuit que vous aviez raison.

Imaginez: vous commencez à rapprocher un exemple de la réalité. Vous considérez honnêtement la relation de la complexité des actions «piquer» et «lire», vous effectuez une étude de la façon dont les gens regardent l'écran, quelle partie du nom sur cette liste leur suffit pour comprendre que ce n'est pas le but.
Vous complétez cet exemple avec un grand nombre de conditions, cela devient des centaines de fois plus compliqué.
Désolé, mais dans ce cas, la probabilité que vous obteniez la bonne réponse «à cause de l'intuition» est bien inférieure aux ~ 50% d'un choix aléatoire.
Êtes-vous si sûr que la réalité sera de votre côté? Pourquoi? Prouvez-le.

- * Voix 1 * Oui, je ne suis pas sûr! Juste ...

- * Voix 2 * Difficile. Il est difficile d'admettre que vous aviez tort, je sais. Mais vous comprenez pourquoi nous en avons besoin. Le fait que cette situation se soit produite indique seulement que nous sommes un frein et apprenons plus lentement que nous le souhaiterions. Mais nous savons quoi faire.

- * Voix 1 * Simple vérité relue, ou quoi?

- * Voice 2 * Très bonne option. Cela nous rassure toujours dans de telles situations. Vous pouvez également respirer profondément. Et oui, nous avons compris cette situation en moins de 1,5 minute. J'ai vu à quelle vitesse le système de détection d'erreur fonctionnait? Je pense que nous méritons une tarte. Il n'est pas sur l'étagère, il y a un putain Potential Bucket , mais nous l'achèterons pour nous-mêmes.

- * Voix 1 * Et pourtant c'est intéressant ce qui va se passer en réalité ...

- * Voix 2 * Avez-vous oublié pourquoi nous écrivons un article?!

...
...
...

Je m'excuse pour une digression et un exemple aussi volumineux. Peut-être n'êtes-vous pas prêt à lire plus loin, et vous voulez y réfléchir à nouveau. Et c'est un bon choix.

Au début, il y a une table des matières, vous pouvez mettre l'article en signet et revenir rapidement à cet endroit.

Avez-vous décidé de continuer? Ensuite, nous avons le dernier sujet de ceux que je voulais aborder.

1.6 Blade Runner


Brièvement
Le rasoir d'Occam et la probabilité d'une hypothèse.

Le rasoir d'Occam en termes de simplicité du système.
Indique la complexité du changement de Cet la complexité du système jusqu'à la façon dont C et après comment C .
k=(CC)/Cet .
Si k plus de 1 est un bon changement.
Si k moins de 1 est un changement acceptable, mais non payant.
Si k moins de 0 est un très mauvais changement.

Si nous supposons que la complexité augmente avec le nombre d'objets dans le modèle et que nous avons déjà un certain ensemble de modèles, nous obtenons que la meilleure option est un modèle avec un nombre minimum d'objets, ce qui est très similaire au libellé du rasoir d'Occam.

Vous connaissez probablement le rasoir d'Occam, mais juste au cas où, je vous rappelle:
«Les nouvelles entités ne devraient pas être attirées sauf si cela est absolument nécessaire.»

En général, ce principe est interprété comme suit: de toutes les hypothèses, la plus probable est celle qui est décrite par le sous-programme le plus court (ou, plus simplement, celui qui est le plus court) ( ru , en1 , en2 ) .

À quoi cela ressemble dans la vraie vie:
Si vous avez allumé la lumière et que la lumière s'est allumée, les hypothèses peuvent être les suivantes:

  1. L'interrupteur a fermé un circuit électrique et le courant a traversé une ampoule.
  2. L'interrupteur a donné un coup de pied au petit gnome, qui a connecté les fils, à la suite de quoi le circuit s'est fermé et le courant a traversé l'ampoule.
  3. L'interrupteur a donné un coup de pied au petit gnome, qui a poussé le chariot dans lequel le petit dragon était assis, qui a été effrayé par une flamme, qui a fait fondre la soudure, qui a connecté les fils, à la suite de quoi le circuit s'est fermé et le courant a traversé l'ampoule.

Parmi ces hypothèses, celle qui contient moins d'entités sans gnome est préférable.Si, cependant, lorsque vous avez allumé l'ampoule, vous avez entendu un juron silencieux de l'interrupteur, la deuxième hypothèse est préférable, car la première n'explique pas pourquoi l'interrupteur jure, et la dernière contient des entités redondantes.

Je serai honnête. Quand j'ai entendu parler pour la première fois du rasoir d'Occam, je n'ai pas pensé à des hypothèses. Et sa formulation vague sous forme verbale m'a amené à l'idée qu'il s'agit d'un principe général - réduire le nombre d'entités qui sont dans votre système et tout sera cool.

Je me trompais beaucoup .

Mais quand j'ai eu une description de la simplicité du système, j'ai réalisé comment corriger mon interprétation incorrecte de ce principe. Et en faire quelque chose d'utile.

Nous avons un système avant et après quelques changements.

Si la différence de complexité Avant et Après est supérieure à la complexité du processus de modification, cette modification est justifiée. Il est entendu que le changement n'a pas affecté le résultat (au moins la partie dont nous avons besoin). Appelons ça ... Une condition nécessaire à la simplification.

Encore une fois: la

simplification attendue du système après le changement doit être supérieure à la complexité du changement lui-même.

Si nous dénotons la complexité du changement pourC et , la complexité du système jusqu'à la façon dontC et après commentC on obtient alors:

C - C > C et .
Nous pouvons également exprimer un analogue d'efficacité pour notre changement.
k = ( C - C ) / C et .
Si k supérieur à un est un bon changement casher correspondant à la condition de simplification nécessaire.
Si k est inférieur à 1, mais supérieur à 0 - cela signifie que vous simplifiez le système, mais y consacrez plus d'efforts que de réaliser un profit.
Si k est inférieur à 0, cela vous indique qu'un tel changement ne vaut pas la peine. Vous compliquez. Pourquoi est-il nécessaire? Eh bien, par exemple, vous agissez dans des conditions où votre temps est limité et vous souhaitez prioriser les changements que vous souhaitez apporter. Changements avec grand

k doit être considéré en premier.

Un exemple:

Nous avons deux textes, l'un avec un exemple de l'autre sans.

D'une part, nous avons augmenté le volume du texte, le compliquant ainsi. Mais d'un autre côté, grâce à cela, certains lecteurs ne chercheront pas sur Google un «exemple de rasoir Occam», ce qui est une action plus compliquée que la simple lecture. Si, à notre avis, il y aura beaucoup de ces lecteurs, l'introduction d'un exemple simplifiera notre article.

Nous ne devons pas oublier que nous avons également pris des mesures pour le décrire, et ils avaient leur propre complexité. Si nous avons dépensé trop d'actions et que la simplification n'a pas suffi - l'introduction de notre essence «ne paie pas».

Hmm, comment tout cela est-il lié au rasoir d'Occam?

Supposons que nous avons déjà plusieurs systèmes. Et leur complexité dépend directement du nombre d'entités (dans le monde réel, ce n'est pas toujours vrai, comme nous l'avons déjà découvert). Les résultats des actions avec ces systèmes nous conviennent.

Puisque le système existe déjà, alorsC et0 (vous n'avez rien à faire pour apporter des modifications au système). Prenons un système avec un nombre minimum d'entités et calculonsk par rapport aux autres systèmes. Nous obtenons celak sera égal à moins l'infini. Du point de vue de la simplicité, dans de telles conditions, choisir un système différent de celui qui contient le moins d'objets est une solution infiniment stupide. Cela nous dit que de tous les systèmes, nous devons choisir celui qui contient le moins d'objets. Hm.Étrangement similaire au rasoir d'Occam.

Que peut-on décrire d'autre en utilisant cette condition?
Par exemple, vous pouvez évaluer quand cela vaut la peine d'appliquer diverses pratiques d'amélioration du code et quand c'est inutile.

En fait, si vous écrivez une tâche dans une université, dont le code sera lu une fois (ou pas lu du tout, mais voyez simplement comment cela fonctionne), alors vous ne devriez pas vous soucier de sa bonne lecture.

Mais si vous écrivez pour un projet OpenSource, et que des centaines de personnes travailleront avec votre code, ou rédigeront votre projet que vous prévoyez de développer, vous devez prendre soin de sa qualité.

Si vous rédigez un recueil, vous devez évaluer si vous en aurez besoin à l'avenir. Si l'enseignant ne vérifie que sa disponibilité et que toutes les informations sont plus faciles à trouver dans Google, pourquoi le compliquer?

Si vous écrivez un article, déterminez comment vous voyez l'interaction avec celui-ci. Par exemple, cet article n'est pas destiné à être lu une seule fois. J'ai essayé de l'optimiser pour une recherche rapide. C'est pourquoi sous chaque partie, il y a un spoiler «brièvement» et une table des matières au début.

Oh, si nous avions un moyen de décrire d'une manière ou d'une autre comment une personne lira notre modèle et de trouver la complexité de ce modèle pour la lecture. Nous pourrions dire avec certitude comment nos actions affecteront la complexité de ce processus et appliquer notre théorie à un grand nombre de problèmes pratiques.

Malheureusement, pour cela, vous devez créer un algorithme général pour lire les personnes de n'importe quel modèle. S'il vous semble que c'est une tâche très difficile - vous avez raison.

Heureusement, j'ai déjà fait une partie de ce travail.

Dans le prochain chapitre, qui s'appellera Machine Ex Homo, nous verrons comment notre cerveau fonctionne avec les informations. Nous parlerons de la compréhension et de la façon dont les informations que nous connaissons déjà affectent la perception du nouveau. Penchons-nous sur les études des psychologues et des neurobiologistes dans le domaine de l'étude de la mémoire humaine et créons sur leur base notre propre modèle de mémoire. Avec son aide, nous expliquerons quelques effets psychologiques intéressants, tels que l'effet de la fréquence du mot, l'effet du bord, les illusions d'optique. Et il y aura beaucoup plus de photos.

En bref - ce sera intéressant, je le promets.

PS
.

, — . , , .

.

: , . , , - .

, , . .

, , . .
, , . , , .
, , simple.explanation.of.simple@gmail.com . , , . , , -, .

Licence:
CC BY-NC-SA 4.0

Source: https://habr.com/ru/post/fr432460/


All Articles