Does P = NP in Cellular Automata of Hyperbolic Spaces?

I read a few years ago in this book that NP problems are tractable in the space of cellular automata in the hyperbolic plane. What does this mean? Does P = NP according to these books/papers?

Some excerpts from the paper:

It is well known that if we have binary trees at our disposal “for free”, it is possible to solve NP-problems in polynomial time, see [14, 5]. However, it is not immediate to implement binary tree algorithms in the pentagrid, and the goal of this section is to indicate how one can proceed.

From my understanding, the P = NP problem is looking for polynomial-time algorithms to solve complicated problems. From my cursory glance through the books and papers, it seems to suggest that he has solved the problem. What am I missing?

Here is another paper, titled In Some Curved Spaces, We Can Solve NP-Hard Problems in Polynomial Time: Towards Matiyasevich’s Dream.

Can creatures with Air-form/Water-form/Fire-form/Amorphous squeeze into spaces smaller than 1 inch?

There are creatures in DND 5e with abilities that allow them to move into spaces as small as 1-inch without squeezing: Air-Form from Air Elementals, Water-Form from Water Elementals, Fire-Form from Fire Elementals, and Amorphous from Oozes.

Therefore can these creatures move through spaces smaller than 1-inch if they use the rules for squeezing? If so what’s the smallest sized space that they’d be able to squeeze through in your option?

For reference the rules for squeezing are:

Squeezing into a Smaller Space

A creature can squeeze through a space that is large enough for a creature one size smaller than it. Thus, a Large creature can squeeze through a passage that’s only 5 feet wide. While squeezing through a space, a creature must spend 1 extra foot for every foot it moves there, and it has disadvantage on attack rolls and Dexterity saving throws. Attack rolls against the creature have advantage while it’s in the smaller space.

How can this Line-Breaking algorithm consider spaces as having width different than 1.0?

The Divide & Conquer Algorithm for Line-Breaking described here is given below, both in Python and in Dart (which is similar to Java/C#).

Line-breaking is also known as “line wrap”, “word wrap”, or “paragraph formation”, and this algorithm is used for achieving minimum raggedness.

This algorithm works, but it considers each space as having exactly width = 1.0 .

My Question:

How can I modify this algorithm so that it ignores spaces? In other words, make it consider spaces as having width 0.0? (or it would also work for me if I could define any width I wanted for the spaces, including 0.0).

Python Implementation:

def divide(text, width):     words = text.split()     count = len(words)     offsets = [0]     for w in words:         offsets.append(offsets[-1] + len(w))      minima = [0] + [10 ** 20] * count     breaks = [0] * (count + 1)      def cost(i, j):         w = offsets[j] - offsets[i] + j - i - 1         if w > width:             return 10 ** 10         return minima[i] + (width - w) ** 2      def search(i0, j0, i1, j1):         stack = [(i0, j0, i1, j1)]         while stack:             i0, j0, i1, j1 = stack.pop()             if j0 < j1:                 j = (j0 + j1) // 2                 for i in range(i0, i1):                     c = cost(i, j)                     if c <= minima[j]:                         minima[j] = c                         breaks[j] = i                 stack.append((breaks[j], j+1, i1, j1))                 stack.append((i0, j0, breaks[j]+1, j))      n = count + 1     i = 0     offset = 0     while True:         r = min(n, 2 ** (i + 1))         edge = 2 ** i + offset         search(0 + offset, edge, edge, r + offset)         x = minima[r - 1 + offset]         for j in range(2 ** i, r - 1):             y = cost(j + offset, r - 1 + offset)             if y <= x:                 n -= j                 i = 0                 offset += j                 break         else:             if r == n:                 break             i = i + 1      lines = []     j = count     while j > 0:         i = breaks[j]         lines.append(' '.join(words[i:j]))         j = i     lines.reverse()     return lines 

Dart implementation:

class MinimumRaggedness {    /// Given some [boxWidths], break it into the smallest possible number   /// of lines such as each line has width not larger than [maxWidth].   /// It also minimizes the difference between width of each line,   /// achieving a "balanced" result.   /// Spacing between boxes is 1.0.   static List<List<int>> divide(List<num> boxWidths, num maxWidth) {      int count = boxWidths.length;     List<num> offsets = [0];      for (num boxWidth in boxWidths) {       offsets.add(offsets.last + min(boxWidth, maxWidth));     }      List<num> minimum = [0]..addAll(List<num>.filled(count, 9223372036854775807));     List<int> breaks = List<int>.filled(count + 1, 0);      num cost(int i, int j) {       num width = offsets[j] - offsets[i] + j - i - 1;       if (width > maxWidth)         return 9223372036854775806;       else         return minimum[i] + pow(maxWidth - width, 2);     }      void search(int i0, int j0, int i1, int j1) {       Queue<List<int>> stack = Queue()..add([i0, j0, i1, j1]);        while (stack.isNotEmpty) {         List<int> info = stack.removeLast();         i0 = info[0];         j0 = info[1];         i1 = info[2];         j1 = info[3];          if (j0 < j1) {           int j = (j0 + j1) ~/ 2;            for (int i = i0; i < i1; i++) {             num c = cost(i, j);             if (c <= minimum[j]) {               minimum[j] = c;               breaks[j] = i;             }           }            stack.add([breaks[j], j + 1, i1, j1]);           stack.add([i0, j0, breaks[j] + 1, j]);         }       }     }      int n = count + 1;     int i = 0;     int offset = 0;      while (true) {       int r = min(n, pow(2, i + 1));       int edge = pow(2, i) + offset;       search(0 + offset, edge, edge, r + offset);       num x = minimum[r - 1 + offset];        bool flag = true;       for (int j = pow(2, i); j < r - 1; j++) {         num y = cost(j + offset, r - 1 + offset);         if (y <= x) {           n -= j;           i = 0;           offset += j;           flag = false;           break;         }       }        if (flag) {         if (r == n) break;         i = i + 1;       }     }      int j = count;      List<List<int>> indexes = [];      while (j > 0) {       int i = breaks[j];       indexes.add(List<int>.generate(j - i, (index) => index + i));       j = i;     }      return indexes.reversed.toList();   } } 

How in command “Reformat Code” of PhpStorm use only spaces?

In my vue page PhpStorm 2019.2.3 with eslint used
Running command "Reformat Code" I got error in my app:

./src/views/About.vue Module Error (from ./node_modules/eslint-loader/index.js): error: Mixed spaces and tabs (no-mixed-spaces-and-tabs) at src/views/About.vue:177:2: 
Code (markup):

Looks like this command use tab symbol for ident spaces and I did not find to to make that command "Reformat Code"
will use only spaces?
I found these

But I do not any option…

How in command "Reformat Code" of PhpStorm use only spaces?

How to get enclosed spaces from a series of connected nodes

I have a bunch of connected walls in a list and the data for them is like so:

Wall {    Node A;    Node B; }  Node  {     float x;     float y;  } 

I want to find the rooms from the connected walls as an array of connected points to represent each room’s perimeter.

This is an example visually of what i am trying to find: enter image description here

The red dots are the nodes, and the lines are the walls, the numbers are the identified rooms that the walls created.

The walls can be at any angle, not sure if that matters though.

I am wondering what algorithms exist that can help me solve this problem, what is the best way to approach this?

How to protect network equipment in public spaces?

I’m curious whether there are standards or recommended best practices to protect network equipment that has to be left unattended and outside (of a secure data-center environment) for example for scientific research?

The assumption here is that even a primitive station would have network equipment (at least a switch/router) that connects to the device taking measurement but also communicates the data back via mobile networks / VPN.

As the equipment obviously has value it is of course at risk of being stolen or even being vandalized. If there is a sophisticated attacker the person might also try to intrude the researchers networks.

Is there best practices or frameworks to follow for this scenario to assess the risk and potential counter measures?

New links in Sharepoint containing spaces include %2520

When I create new links on our Intranet Sharepoint page, if the target file has spaces in it then after the link is created the final result for something like File name becomes File%2520Name. Old links are still using the standard %20 method and work fine. These new links however, are broken. From what I read, %25 is a % so somewhere, Sharepoint is randomly seeing an additional one of those? My steps for adding a new link to a file are: Edit page > Insert > Link > From address. I put in the full file path and precede it with file:// and the end result is a file path with %2520. My only “fix” for this so far has been to rename files to remove the spaces. Any thoughts?

How to use grep to match a string with spaces in it?

Can anyone help me with this:

I am trying to extract a time stamp, by matching a string. For this am using combination of grep/awk commands. As the sting has 4 spces before [1] and one after, am confused how to work around it. Am new to programming, so need some help here.

IS="$  (grep 'Starting    [1] TaskInit' process.log |  awk '{print $  4}')" echo "$  IS" 

Aim: It should match the string in the process.log file and should print out the time stamp related to that row.

How to convert a file with several spaces into a tab-delimited file?

I had file1:

MSTRG.10807.1   0.494311896511595   MID    0.423993026403461 2.39379412548345   1.99703339651136 MSTRG.10884.1   0.365770947942799   EARLY  1.46416917664929   1.16816186543633   0.689075392478972 MSTRG.10958.1   0.52855355823638    MID    0.885493751836316  2.28463841550375   1.26867555157512 

I used command the sed 's/ /,/g' file1 > file2 and this produced file2:

MSTRG.10807.1,,,0.494311896511595,,,MID,,,,0.423993026403461,,2.39379412548345,,,1.99703339651136 MSTRG.10884.1,,,0.365770947942799,,,EARLY,,1.46416917664929,,,1.16816186543633,,,0.689075392478972 MSTRG.10958.1,,,0.52855355823638,,,,MID,,,,0.885493751836316,,2.28463841550375,,,1.26867555157512 

But I want a tab-delimited file.