samedi 28 mars 2020

Covid 19

Dans l'esprit de se blog qui donne le point de vue d'un néophyte en acceptant de prendre de grands risques de dire des "conneries" je présente juste des hypothèses sur le problème.

Vous êtes prévenus que je ne prétends pas pouvoir améliorer  la situation. Les remarques présentées pourraient même causer une aggravation de certaines situations. 

D'une part je trouve que le problème de la protection (masques, désinfectant ....) contre le virus a été souvent mal été présenté car il y a deux problèmes différents:

-- Protéger le personnel hospitalier c.a.d empêcher de manière quasi parfaite une personne saine d'être contaminé dans un environnement très risqué.

--  Ralentir la propagation du virus au sein de la population  c.a.d réduire le risque qu'une personne infectée transmette à de nombreuses personnes la maladie.

Cette réduction du risque si elle existe et si elle aurait un impact    aurait du être évoquée lors de la présentation du degré d'efficacité des différentes solution (masque , lavage de mains, désinfection).


En fin de compte:

-- Quel mal il y a -t-il à porter un masque même si la protection qu'il me donne est très mauvaise mais qu'il permet de diminuer le nombre de personnes que je suis susceptible de contaminer? Peut-être se contaminer soit même en le manipulant, mais il peut être désinfecté ou lavé.

-- Pourquoi n'avons nous pas de stock stratégiques de masques, de solutions et gels alcooliques de gants de protections?

-- Peut on fabriquer un masque avec les moyens du bord qui puisse réduire la propagation de la maladie?

-- Quel est l'impact global d'une réduction de 10, 20, 30....80% du risque de contamination d'une personne malade à un groupe de son environnement immédiat.

La comparaison des différentes solutions mise en oeuvre dans des pays qui ont bien résisté au virus va poser la question  de la compétence des équipes qui ont pris les décisions.

Des états, journalistes, médecins et citoyens  pourraient être attaqués en justice par des groupes de citoyens qui accumuleraient des preuves de négligence ou de désinformation.


lundi 16 mars 2020

L'écologie et le militant.

Tant de bonnes volontés et tant de gaspillage.

J'ai  parfois été au contact de militants. J'ai même collé quelques affiches pour les verts.

Je crois que personne n'oserait aujourd'hui remettre en question l'existence d'une menace pour la vie sur terre causée par les activités   humaines.

Je pense pourtant que tout peut-être remis en question. Les problèmes sont complexes et le nucléaire en est un exemple flagrant. 

En effet dans les année 1980 juste après Tchernobyl, personne n'aurait osé prétendre que les centrales nucléaires on un effet positif sur l’environnement et même que cet effet positif prévaut sur son effet négatif.

La complexité des techniques et la multitudes des innovations font qu'il est dangereux de ce jeter sur la première solution venue: pourquoi investir des sommes faramineuses  dans des solutions qui risquent de devenir rapidement obsolètes ou se révéler inadaptées? Un état ne peux se permettre de prendre le risque de perte concurrentielle  considérable sur le marché mondiale à cause de l'écologie.

On ne peut prétendre que la voiture électrique, le carburant vert .... doivent absolument être massivement utilisés. C'est juste une partie des solutions possibles.

De plus l'écologie en tant que  mouvement politique est la cible de toute les manipulations à cause de la charge émotionnelle et de son impacte politique et même économique. En manipulant les mouvement écologiques, certaines minorités ou puissances étrangères peuvent influencer et même déstabiliser le fonctionnement politique d'une nation à leur avantage.

Ce sont juste des suggestions qui doivent être analysées et complétées; mais que pourrait faire le militant de base dans ces conditions ? 

  • Il devrait être prudent et se méfier de tout ce qui est fortement chargé émotionnellement parce que cela renforce -parfois faussement-  l'impression d'être utile ou d'avoir raison.
  • Essayer de (se ) construire une vue globale du problème incluant la sécurité de l'état, l'équilibre du débat politique, les avis scientifiques, l'innovation technique (veille technologique).
  • Établir des liens avec les services de renseignement et la communauté scientifique
  • Partager cette vue globale en sensibilisant et en informant la population. 
  • Participer localement à des actions écologiques: 
    • Participation à la construction d'un rapport sur l'état écologique de sa commune.
    • Participation à la surveillance écologique (agriculture, industrie, particuliers, action de l'état, faune et flore sauvage).
    • Participer à des action ayant pour but d'améliorer une situation particulière (aménagement, nettoyage....).
    • .........
  • ..........
J'ai par exemple une proposition concernant une loi dont le but est de favoriser la recherche et la publication de solutions ayant une implication directe dans l'amélioration écologique de la planète:
Permettre l'extension du temps pendant lequel une entreprise ou un particulier peux percevoir des droits liés à un dépôt de brevet si son invention se révèle avoir un impact particulièrement positif sur l’environnement. Des incitations fiscales pourrait être aussi envisagées pour faciliter la commercialisation et la distribution c'est à dire augmenter l'espoir de bénéfice. N'ayant pas une bonne connaissance de ce qui se passe dans le monde du dépôt de brevet et n'ayant pas pu trouver beaucoup d'information pratiques dans ce domaine, c'est peut-être une très mauvaise solution. Mais il faudrait pouvoir stimuler l'innovation à impact écologique si besoin est.  Remarquez que cela n'est peut-être pas nécessaire aujourd'hui; le recherche dans ce domaine est peut-être suffisante et le degré d'urgence ne justifie peut-être pas un rééquilibrage. De plus on peut très bien faire une découverte utile dans le domaine écologique sans le vouloir. Il y a-t-il une recherche "écologique"? Quelle est sont utilité et sa situation? Comment sont prises les décisions d'attribution de crédit de recherche "écologique" aujourd'hui?
Remarquez que le but ultime serait de favoriser la détection des découvertes fondamentales qui auraient une utilité "écologique" et de favoriser leur utilisation. Il faudrait bien sur aussi favoriser des recherches fondamentales si on peut estimer les retombées probables dans le domaine écologique. Quand à leur utilisation, augmenter le temps de collecte des droits relatif aux brevet serait bien sur un obstacle à la commercialisation et peut être même finalement à la recherche: en effet pourquoi une entreprise continuerait à chercher de nouvelles solutions si les anciennes lui rapportent suffisamment (voir brevet Telsa)? Il faudrait donc que les incitations fiscales permettent  d'augmenter les bénéfices commerciaux tout en diminuant les les prix de ventes tout en favorisant la recherche. Mais les incitation fiscales ont-elle permises de mieux isoler les maisons? Quel est le bilan financier pour la nation , le particulier, le fournisseurs de service et matériaux?
Aujourd'hui ils semble que le consommateur accepte de payer plus pour des produits labellisé "écolos" sans pour autant que leur utilité écologique soit prouvée.

dimanche 2 février 2020

La théorie des langages.

A force de bricoler et d'essayer d'améliorer des partie de logicielle que j'ai faites, je suis tombé sur Flex et Bison puis sur des référence à la théorie des langages formel. 
J'ai acheté le boucain (introduction to formal languages Révéz) mais j'ai des difficultés:
-- j'imagine des choses qui ne sont pas ce qui est présenté dans le live et donc je ne comprends pas ce que je lis.
-- je fais des digressions constamment dans différent domaines y compris en réalisant un générateur de langage utilisant une grammaire générative. 

Donc je n'avance pas et ce n'est pas seulement un problème de travail assidu. 

Des managers  qui m'ont observé depuis le  début de ma carrière on constaté un certain manque d'ambition mais on pourrait parfois émettre l'hypothèse d'une ambition démesurée qui peut aisément être prise pour de l'inconséquence, ou de la folie voir de la bêtise.

Vous avez déjà été prévenue sur les risques que je prends dans ce Blog. Ils sont démesurés par rapport à mes connaissances des sujets abordés.

Donc la théorie des langages est importante car pour moi elle chapeaute les autres théories.
Pour bien comprendre la manière de penser d'un étranger il est préférable de bien connaître sa langue, pas seulement savoir parler couramment mais connaître sa structure. Au début on est incapable de reproduire les sons aussi par ce qu'on est incapable de les reconnaître, enfin....la raison est probablement plus complexe.

Il est donc possible que les obstacles rencontrés dans la recherche fondamentale en physique soit du à l'absence d'un langage adapté. L'univers étant lui même un langage que nous essayons de traduire dans un langage compréhensible par nous. Mais quel langage chercher? La théorie des langages et les problèmes connus de traduction pourrait-ils  nous aider en essayant de s'orienter vers de nouvelle structures? Ces langages seront ils encore manipulés directement par des cerveaux humains ou prises en charge presque totalement à l'aide des ordinateurs?  On pourrait même se demander si les nouveaux langages qui vont être utilisés avec les ordinateur quantiques ne vont pas donner naissance à de nouvelles théories mathématiques. 

Mais je suis obligé d'arrêter, il faut quitter le mode recherche pour revenir en mode apprentissage: limiter les rêveries, fixer des horaires, quantifier le nombre de pages lues.

Pour moi la recherche nécessite une part d'incompétence:  vous êtes obligé à un moment donné d'utiliser  des domaines de connaissance qui vous sont étrangers . C'est pour cette raison qu'il faut des équipes pluridisciplinaires. 

Je  suis une grosse équipe de gens très incompétents à moi tout seul.... plus  Google.

Ici une tentative de développement d'un  générateur de langage (tout type  Chomsky 0-3)
Cela n'est pas complètement testé donc à vos risques et périls!

A python pgm: langage generator from grammar rules

The test suite for this programm

It works with  grammars that generates  words with infinit length.
It just cut the derivation when the length is higher than a chosen limit.
But it is not always possible to predict the length of the finnl word when rules would shrink a word like aPb-->ac .
That kind of rules gives normally a warning messages and we might not see all words having a length below the chosen limit in the final result.

Before publishing it I received comments that  the pgm wasn't working. They can say it officially now!

This pgm might be usefull to generate special kind of permutation like in the exemple given at the end of the source: generating L={P|Na(P)=Nb(P}  Vn={S,A,B} Vt={a,b}. I am still searching a way to make a test suit and generating an equivalent language with itertools.

A lot of interesting problems arise simply by trying to resolve practical problems like building a subset of the language and limiting the length of the words.

Some vague idees:
-- Structure of a language: we could compare language just by comparing the general form of the tree we explore during the derivation (abstraction of the alphabet itself).
-- how to add  shrinking rules  that will collapse parts of the language.
-- how to find a generative grammar from a preexisting language
-- how to optimize a generative grammar (by having less rules or more efficient rules during the derivation).
-- is it possible to have a canonical form for a generative grammar.

The general idee would  be to find new langages that could by their structure expand the possibilties of  existing langages.

After having tested some generative grammar with my program I had to make some modifications.
One of them was to let the program run even if I encounter situations where there are still non terminal characters but no rule can apply.
This is the case of this grammar
    F=[("S","a"),       ("S","CD"),       ("C","ACB"),       ("C","AB"),       ("AB","aBA"),      ("Aa","aA"),       ("Ba","aB"),       ("AD","Da"),       ("BD","Ea"),       ("BE","Ea"),       ("E","a")]
 generating L={ a^n² |n in 1,2,3,....}

This grammar generates (if I made no mistakes) a lot of non-derivable words. A lot more than the word in L: I had to wait hours before seeing the  first words appearing.

A way to recognize this kind of grammar would appear be more useful  to me than the Chomsky types. But I am a programmer not a linguist.
There is also perhaps a way to determine some rules that have no chance to reappear during derivation. Again a way to classify the grammar and the language.
How to transform this grammar to a more efficient one? When is it possible?
They are so many possibilities, but computers could help.

I just heard (hallucinations or electronic harassment): "He is half serious".

Making such assumptions about fondamental research is easy: I mean, every-body  should be aware of concepts limitation induced by languages.

Knowing quite nothing about quantum mechanic I can't  try to detect when a failure is due to langage limitation (wrong language) or wrong model  using the right language.

So along with  new observations   we might have to find new langages (not only based on numbers).  Of course we can't throw away number. But what else can we do with them? Do we need the  continuity given by real numbers? Is integral calculus still the only way?

So making fondamental research is some kind of reverse engineering toward a langage we don't even know. Would  people working on language and people making even simple models be useful?

After  hours of trying to study the book written by Gyorgy E.Revesez (introduction to formal langage), I haven't been able to fully understand any of the proof given for the theorems. If I say "fully" it is just because I don't want to be too hard with myself. Even understanding some theorem concepts is a problem. I don't know the reasons: perhaps I am to old or I stayed to much time without training my brain or I got unwillingly some pils that weaken intellectual abilities.

They decided that I am  a kind of  Jean Paul Farré but I don't have his talent. I just like to amuse people and myself. It is not easy with science. Science isn't an entertainment but music is.

To illustrate the kind of difficulties I have with the introduction to formal language, I'll give this example and later an attempt to resolve the problem in a way that allow somebody like me who doesn't have the training or the gifts. Some people  might find this as ridiculous as counting with your hand-fingers.


and the proof in a form of an algorithm: I'm a programmer.

if P=a^i b1 W1 b2 W2 .... bi Wi = a^iX
then X=b1 WA b2 W2 ....biWi and we have  i more b's  in X than a's.
Na(X) +i  = Nb(X)
the character at the beginning of X is X[0 ] =b1
if X1 = X[1,len(X)]   substring of X from pos 1 to the end
we have Na(X1) + i -1 = Nb(X1)
As far as we haven't encountered all the bi's they are more b's than a' in Xn

If Xn beginns with a 'a' we are sure to find a string Wi=Xn[n,n+k)] in Xn. (with n+k=<len(X))
Suppose we start with k=1
we have Wi="a" and Nb(Wi)-Na(Wi) = -1
when we reach n+k we will have    Nb(Wi)-Na(Wi) = i -1 >=0 (by incrementing or decrementing)
So we will find a k where Nb(Wi)-Na(Wi)  = 0
But Wi  must be followed by a 'b'
if Xn beggins with a 'b' we will consider this as a bi that counter balance the ai's at the beginning of P. When we have found all of them n the remaining string has surely Na=Nb

Now the pgm.
#!/bin/python
'''

'''
import re as RE
              
class TestA():
    '''
    Split a word P | Na(P)=Nb(P) and P=a^i b1 W1 b2 W2b .....bi Wi
    we want to get w1,W2....wi in a list
    and rebuild P from it to copare to the original P
    '''
    def __init__(self,P):
              
        if len(P) % 2 == 0 and len(P) != 0:
              self.P = P
        else:
            raise Exception("P must have even length and not empty")
        
        if not self.NaEqNb(P) :
            raise Exception("P must have Na = Nb ")
        
        if P[0] == "a":
            try:
                match = RE.match( "(a+)(b.*)$", P )
            except:
                raise Exception("P doesn't match '(a+)(b.*)$' -> %s" %(P,))
            self.A="a"
            self.B="b"
            
        elif P[0] == "b":
            try:
                match = RE.match( "(b+)(a.*)$", P )
            except:
                raise Exception("P doesn't match '(b+)(a.*)$' ->%s" %(P,))
            self.A="b"
            self.B="a"
            
        Alist,X=match.groups()
        ##print Alist,X
        self.wlist=[Alist]
        self.X=X
        self.i=len(Alist)
        self.extract(X)

    def NaEqNb(self,X):
            Na = X.count("a")
            Nb = X.count("b")
            if Na == Nb :
                return True
            else:
                return False
        
    def extract(self,X):
              
        n=0
        ii=0
        while n < len(X):

            if ii == self.i :
                # when we have consumed all bi's (from the ai's) 
                # the remaining string is either empty or Na =Nb
                subX=X[n:]
                if self.NaEqNb(subX) :
                    #print "last sub X,ii",subX,ii
                    self.wlist.append(subX)
                    return
                else:
                    raise Exception("Error:Na(X) != Nb(X)")
            # ii < i still have bi's to process
            if X[n] == self.A:                  
                for x in xrange(n+2,len(X)+1,2):
                    subX=X[n:x]
                         
                    if self.NaEqNb(subX) :
                         if  X[x] == self.B:  
                            self.wlist.append(subX)
                            n = x
                            break
            elif X[n] == self.B:
                n += 1
                ii += 1
                self.wlist.append(self.B)
                if n == len(X):
                    self.wlist.append("")
  
                            
              
if __name__ =="__main__":
    '''
    '''    

     sample = ["aabababbab"]
  
    ##print sample
    for P in sample:
        p="".join(P)
        t=TestA(p)
        pp="".join( t.wlist)
        if p != pp:
            raise Exception("P != PP: %s %s" %(p,pp))
        else :
            pass
            #print p,pp, t.wlist
    print "Test ik ok for all asmple"


Fuck!

By looking at  the program made from this algorithm and making several tests I could pretend that the program would never fail  for any P of L in finding this expression: P=a^ibW1bW2....bWi
But could an automatic analysis of the  program say it to me?
Could we have a special language that could be analysed  automatically?
Or could we have something like symbolic calculus for sets and tuples and lists?
It could be the first step in asking machines to take the risks for us,
and mathematicians loosing part of the control they want to keep.

vendredi 31 janvier 2020

Les Décorations en France.

On pourrait penser qu'il est bon que chacun puisse vérifier les décorations obtenues par une personne ainsi que ces diplômes. L'Etat Français soucieux de montrer sa modernité pourrait fournir à tout un chacun la possibilité de vérifier facilement ses informations. C'est à dire obtenir l'information sans avoir à fournir l'état civil complet de la personne décorée. A priori tout devrait être online. Les possibilités d'erreur sur la personne pouvant être éliminé par la suite si la état civil de la personne est fournie avec la preuve de décoration pour permettre une vérification.

Autrement dit je pense que c'est au service des décorations de fournir l'état civil complet, pas à moi car il est difficile de fournir l'état civil complet si on est pas de la famille.

Bien sûr j'ai peut-être tord: des raisons pourraient exister qui justifient de limiter l'accès.

En fin de compte heureusement que Google vient au secoure de l'état Français. J'arrive quand même à trouver le décret prouvant la décoration.